Crawler desde la entrada hasta la cárcel (2) - Operación de archivo CSV

El contenido del artículo es de "desarrollo del rastreador de Python"

2.1 Operaciones con archivos

2.1.1 Archivos abiertos: abiertos y con open() como

Cuando use Python para abrir un archivo de texto, primero asegúrese de que el archivo exista.
Es posible poner archivos de texto y archivos de Python directamente juntos, de modo que el archivo de texto se pueda abrir directamente usando el nombre del archivo.
Al leer un archivo, se puede omitir el parámetro "modo de operación de archivo", o se puede escribir como "r", que es la primera letra de lectura.

La palabra clave "abrir" se utiliza para abrir un archivo y crear un objeto de archivo.
##Método 1: abierto, debe cerrarlo manualmente
Por favor agregue la descripción de la imagen

Método 2: Gestión de contexto (apagado automático)
Por favor agregue la descripción de la imagen

Parámetros: codificación

Hay un parámetro "codificación" aquí. Este parámetro es particularmente útil, puede convertir el archivo al formato de codificación UTF-8 al abrir el archivo, evitando así la aparición de caracteres ilegibles. Este parámetro solo está disponible en Python 3. El uso de este parámetro en Python 2 generará un error. Si el archivo se creó en Windows y aparecen caracteres ilegibles al abrir el archivo con UTF-8, puede cambiar el formato de codificación a GBK.

2.1.2 Lectura de archivos: read y readlines

read: devuelve directamente todo el contenido del archivo como una cadena:

f.read()

Por favor agregue la descripción de la imagen

readlines: lee todas las líneas y devuelve el resultado como una lista:

f.readlines()

Por favor agregue la descripción de la imagen

2.1.3 Escribir archivos: write y writelines

Por favor agregue la descripción de la imagen
Hay un parámetro más "w" aquí, w es la primera letra de escritura en inglés, lo que significa abrir el archivo escribiendo. Además de "w", este parámetro también puede ser "a". La diferencia entre ellos es que si ya existe un nuevo archivo.txt, al usar "w" se sobrescribirá el archivo original, lo que resultará en la pérdida del contenido original, mientras que al usar "a" se escribirá el nuevo contenido al final del archivo original
Los otros parámetros son los siguientes:
inserte la descripción de la imagen aquí
Método 1: escribir
directamente escribe una gran cadena de caracteres en el texto, puede usar la siguiente línea de código:

f.write('一大段')

Método 2: las líneas de
escritura escriben todas las cadenas de la lista en el texto, puede usar la siguiente línea de código:

f.writelines(['第一段','第二段','第三段'])

Es importante tener en cuenta que al escribir una lista, el texto escrito por Python no se ajustará automáticamente y deberá ingresar manualmente una nueva línea.
Como:

f.writelines(['第一段\n','第二段\n','第三段'])

2.2 Leer y escribir archivos CSV

2.2.1 Archivo CSV

Los archivos CSV son esencialmente archivos de texto, pero si se abren directamente con un editor de texto, no son muy legibles.
como sigue:
Por favor agregue la descripción de la imagen

2.2.2 Python lee el archivo CSV: DictReader()

Documentación de la biblioteca CSV estándar de Python: https://docs.python.org/3/library/csv.html

Para leer un archivo CSV, primero debe importar el módulo CSV de Python:

import csv

Dado que el archivo CSV es esencialmente un archivo de texto, primero debe abrirse como un archivo de texto y luego el objeto del archivo se pasa al módulo CSV:
Ejemplo de operación:

import csv
with open('result.csv',encoding='utf-8') as f:
    reader= csv.DictReader(f)
    for row in reader:
        print(row)

El resultado es el siguiente:
Por favor agregue la descripción de la imagen

El nombre de usuario, el contenido y el tiempo de dependencia en la figura son 3.1.1.
La fila obtenida por el bucle for en la primera línea de la imagen es un OrderedDict (diccionario ordenado) (la fila devuelta en 3.8 es un tipo de dictado), que puede usarse directamente como un diccionario normal:

username= row['username']
content=row['content']
reply_time=	row['reply_time']

ejemplo de uso
Por favor agregue la descripción de la imagen

Después de unas pocas líneas de código, el archivo CSV se ha convertido en un diccionario.

Nota : el código para leer el contenido del texto debe colocarse dentro de la sangría, de lo contrario, se producirá un error.
Por favor agregue la descripción de la imagen

Esto se debe a que el valor en la variable f es un generador, y el generador solo lee el texto cuando se usa (o se itera con mayor precisión). Pero después de salir de la sangría de, Python cierra el archivo y, por supuesto, no se puede leer nada en este momento.
Esta limitación se puede eludir utilizando una lista de comprensión.Por favor agregue la descripción de la imagen

2.2.3 Python escribe un archivo CSV: DictWriter()

Escribir un archivo CSV en Python es un poco más complicado que leer un archivo CSV, debido a los nombres de las columnas que deben especificarse. Los nombres de las columnas deben corresponder uno a uno con las claves del diccionario.
Python necesita usar la clase csv.DictWriter() al escribir archivos CSV. Recibe dos parámetros: el primer parámetro es el objeto de archivo f; el segundo parámetro se denomina nombres de campo y el valor es la lista de claves del diccionario.
Escribir filas de nombres de columnas: writeheader()
Escribir una lista de diccionarios en un archivo CSV: writerows()
Escribir un solo diccionario: writerow()
Ejemplo de uso:

import csv
data=[{
    
    'name':'老大','age':20,'salary':99999},
      {
    
    'name':'老二','age':18,'salary':12345},
      {
    
    'name':'老三','age':15,'salary':00000}]
with open('a.csv','w',encoding='gbk') as f:
    write=csv.DictWriter(f,fieldnames=['name','age','salary'])
    write.writeheader()#写入第一行,name,age,salay
    write.writerows(data)
    write.writerow({
    
    'name':'超人','age':999,'salary':98976654})

Supongo que te gusta

Origin blog.csdn.net/weixin_55159605/article/details/124096190
Recomendado
Clasificación