Codificación al leer y escribir archivos en Python

En "Lectura de archivos en Python" y "Escritura de archivos en Python", se menciona que el objeto de archivo se puede leer y escribir llamando a la función read() y write(). Cuando los métodos anteriores pueden leer o escribir correctamente en inglés, cuando el contenido que se va a leer y escribir es chino, debe considerar el método de codificación.

1 Leer datos existentes

1.1 Crear un archivo

Cree un archivo txt, ingrese el contenido chino "Nihao world" en el archivo, puede ver que el método de codificación del archivo es "UTF-8", como se muestra en la Figura 1.

Figura 1 Crear un nuevo archivo txt

Enlaces relacionados 1 La codificación UTF-8 es la abreviatura del formato de transformación Unicode, es decir, la codificación de caracteres de longitud variable. Con la codificación UTF-8, las letras inglesas se representan con un byte y los caracteres chinos con tres bytes. La codificación UTF-8 de los cuatro caracteres chinos "Hello World" se muestra en la Figura 2.

Figura 2 Codificación UTF-8 de "Hello World"

1.2 Lectura de archivos

1.2.1 Método de codificación no especificado

Utilice el código que se muestra en la Figura 3 para leer el archivo.

 

Figura 3 El código para leer el archivo sin especificar el método de codificación

En este momento, la función open() no especifica qué método de codificación usar para leer el archivo, por lo que el contenido impreso está distorsionado.

1.2.2 Especificar el método de codificación

El parámetro de codificación de la función open() especifica el método de codificación para leer el archivo. El código se muestra en la Figura 4.

Figura 4 El código para leer el archivo especificando el método de codificación

En el código anterior, se usa el método de codificación "UTF-8" para leer el contenido del archivo, y la salida en este momento es "Hola mundo".

2 Leer datos escritos por código Python

Al leer datos escritos por código Python, debe usar la misma codificación que se usó para escribirlos. Por ejemplo, si usa el método "gbk" al escribir, también debe usar el método "gbk" al leer, en lugar de usar el método "UTF-8".

Enlaces relacionados 2 codificación GBK, la especificación de código interno chino es la abreviatura de la especificación de extensión de código interno chino, donde K es la abreviatura del pinyin "KuoZhan " para "extendido" en chino . Tanto las letras inglesas como los caracteres chinos están representados por dos bytes, como se muestra en la Figura 5.

Figura 5 Codificación GBK de "Hello World"

2.1 Escribir datos usando un método específico

Use el método de codificación "GBK" para escribir "Hello world" en el archivo data.txt, el código se muestra en la Figura 6.

Figura 6 Especifique el método de codificación para escribir datos en el código del archivo

Abra data.txt y podrá ver que el método de codificación del archivo es "ANSI", como se muestra en la Figura 7.

Figura 7 archivo txt escrito con código Python

Enlaces relacionados 3 La codificación ANSI es la abreviatura del Instituto Nacional Estadounidense de Estándares, es decir, el estándar del Instituto Nacional Estadounidense En el sistema operativo chino simplificado, la codificación ANSI representa la codificación GBK.

2.2 Leer archivos usando la misma codificación

El código para leer el archivo se muestra en la Figura 8.

Figura 8 Lea el archivo usando la misma codificación

Si el método de codificación utilizado para la lectura es diferente al de la escritura, los datos no se pueden leer correctamente, como se muestra en la Figura 9.

Figura 9 Lectura de archivos usando diferentes métodos de codificación

Supongo que te gusta

Origin blog.csdn.net/hou09tian/article/details/131585420
Recomendado
Clasificación