Cómo lee Python los datos de un archivo
Para leer un archivo, necesita un archivo que contenga varias líneas de texto (los archivos PI_DESC.txt y file_reader.py están en el mismo directorio).
PI_DESC.txt
3.1415926535
8979323846
2643383279
5028841971
file_reader .py
Usar open("PI_DESC.txt ") como file_object:
Contenido = file_object.read()
Imprimir (directorio)
Podemos ver que el método colse() no se utiliza al leer el archivo, por lo que si el archivo no se cierra correctamente, ¿se dañará? No se introducirá aquí porque introdujimos la palabra clave con antes del método open(). La función de esta palabra clave es cerrar el archivo después de que ya no sea necesario acceder al archivo.
1.2 Ruta del archivo
Cuando el programa lee un archivo de texto, si no se proporciona ninguna ruta, primero buscará en el directorio actual. A veces necesitamos leer rutas en otras carpetas. Por ejemplo:
Ahora el archivo PI_DESC.txt está almacenado en la subcarpeta txt del directorio de Python.
Entonces nuestro código para leer contenido de texto debe modificarse para:
Usar open("txt\PI_DESC.txt ") como file_object:
Contenido = file_object .read()
Imprimir (directorio)
Los parámetros pasados al parámetro abierto deben recibir una ruta relativa.
En Windows, se utiliza la barra invertida (\), pero en Python, la barra invertida se trata como un carácter de escape. En Windows, es mejor anteponer la comilla simple (comilla doble) al comienzo de la ruta con una R.
Ruta relativa: la ruta relativa al archivo del programa.
Ruta absoluta: La ruta donde se almacena el texto en el disco duro.
¿Cómo escribir un programa que utilice rutas absolutas?
Utilice open(r " D:\ python \ txt \ PI _ desc . txt ") como file_object:
Contenido = file_object.read()
Imprimir (Directorio)
1.3 Leer línea por línea
Al leer un archivo, es posible que necesite leer cada línea del archivo. Para inspeccionar o modificar un archivo línea por línea, puede utilizar un bucle for en el objeto del archivo.
file_path = 'txt\PI_DESC.txt ', open(file_path) es file_object:
Para líneas en file_object:
Imprimir (línea)
p>Los resultados de la ejecución del programa son los siguientes:
Como puede ver en los resultados de la ejecución, hay muchas líneas en blanco en los resultados impresos. ¿De dónde vienen estas líneas en blanco? Debido a que hay una nueva línea invisible al final de cada línea en este archivo, y la declaración de impresión también agrega una nueva línea, hay dos nuevas líneas al final de cada línea: una del archivo y otra de la impresión. Para eliminar estas nuevas líneas, simplemente use el método rstrip().
file_path = 'txt\PI_DESC.txt ', open(file_path) es file_object:
Para líneas en file_object:
print(line.rstrip() )
Imprimir resultados
Como puede ver en los resultados en ejecución, hay muchas líneas en blanco en el medio de los resultados de impresión. ¿De dónde vienen estas líneas en blanco? Debido a que hay una nueva línea invisible al final de cada línea en este archivo, y la declaración de impresión también agrega una nueva línea, hay dos nuevas líneas al final de cada línea: una del archivo y otra de la impresión.
Para eliminar estas nuevas líneas, simplemente use el método rstrip().
file_path = 'txt\PI_DESC.txt ', open(file_path) es file_object:
Para líneas en file_object:
print(line.rstrip() )
Imprimir resultados
1.4 Crear una lista que contenga el contenido de cada línea del archivo.
Cuando se usa la palabra clave with, el objeto de archivo devuelto por open() solo se puede usar en el bloque de código with. Si desea acceder al contenido de un archivo fuera de un bloque with, puede almacenar las líneas del archivo en una lista dentro del bloque with y usar la lista fuera del bloque with.
file_path = 'txt\PI_DESC.txt ', open(file_path) es file_object:
lines = file _ object . readlines()para línea en líneas:
print(line.rstrip())
1.5 Usando el contenido de un archivo
En la sección anterior, mencionamos la extracción de datos en la memoria, para que podamos hacer lo que queramos. desear.
Obligatorio: imprimir pi juntos (eliminar espacios) e imprimir su longitud.
file_path = 'txt\PI_DESC.txt ', open(file_path) es file_object:
lines = file _ object lee líneas()pi _ str = '' para la línea de entrada. líneas:
pi _ str+= línea . strip()print(pi _ str . primer rip())print(len(pi _ str . primer rip()))
file_path = 'txt\PI_DESC.txt ', open(file_path) es file_object:
lines = file _ object . leer líneas()pi _ str = ' ' para línea en líneas:
pi _ str+= line . strip()print(pi _ str . rst rip())print(len(pi _ str . rst rip()))
Tenga en cuenta que la declaración de impresión final Sin sangría. Si tiene sangría, imprima cada línea.
El efecto de impresión es el siguiente