Directorio de artículos
Operaciones de archivo
la meta
- El rol de las operaciones de archivos
- Operación básica de archivos
- encender
- Lee y escribe
- apagar
- Copia de seguridad de archivos
- Operaciones de archivos y carpetas
1. El papel de las operaciones con archivos
Pensando: ¿Qué es un archivo?
Pensando: ¿Qué incluye la operación de archivos?
Respuesta: Abrir, cerrar, leer, escribir, copiar ...
Pensando: ¿Cuál es la función de las operaciones de archivos?
Respuesta: Leer contenido, escribir contenido, hacer copias de seguridad de contenido ...
Resumen: la función de las operaciones de archivos esAlmacene parte del contenido (datos), de modo que el programa se pueda usar directamente cuando se ejecute el programa la próxima vez, en lugar de hacer una nueva copia, ahorrando tiempo y esfuerzo。
2. El funcionamiento básico del archivo
2.1 Pasos de la operación de archivos
- abre un archivo
- Operaciones de lectura y escritura
- Cerrar el archivo
Nota: Solo puede abrir y cerrar el archivo sin ninguna operación de lectura o escritura.
2.1.1 Abierto
En Python, usando la función de abrir, puede abrir un archivo existente o crear un nuevo archivo, la sintaxis es la siguiente:
open(name, mode)
nombre: una cadena del nombre del archivo de destino que se abrirá (puede incluir la ruta específica donde se encuentra el archivo).
modo: establece el modo de apertura del archivo (modo de acceso): solo lectura, escritura, anexar, etc.
2.1.1.1 Modo de archivo abierto
modo | descripción |
---|---|
r | Abra el archivo como de solo lectura. El puntero del archivo se colocará al principio del archivo. Este es el modo por defecto. |
rb | Abra un archivo en formato binario para solo lectura. El puntero del archivo se colocará al principio del archivo. Este es el modo por defecto. |
r + | Abra un archivo para leer y escribir. El puntero del archivo se colocará al principio del archivo. |
rb + | Abra un archivo en formato binario para leer y escribir. El puntero del archivo se colocará al principio del archivo. |
w | Abra un archivo solo para escritura. Si el archivo ya existe, abra el archivo y comience a editar desde el principio, es decir, se eliminará el contenido original. Si el archivo no existe, cree uno nuevo. |
wb | Abra un archivo en formato binario solo para escritura. Si el archivo ya existe, abra el archivo y comience a editar desde el principio, es decir, se eliminará el contenido original. Si el archivo no existe, cree uno nuevo. |
w + | Abra un archivo para leer y escribir. Si el archivo ya existe, abra el archivo y comience a editar desde el principio, es decir, se eliminará el contenido original. Si el archivo no existe, cree uno nuevo. |
wb + | Abra un archivo en formato binario para leer y escribir. Si el archivo ya existe, abra el archivo y comience a editar desde el principio, es decir, se eliminará el contenido original. Si el archivo no existe, cree uno nuevo. |
a | Abra un archivo para agregarlo. Si el archivo ya existe, el puntero del archivo se colocará al final del archivo. En otras palabras, el contenido nuevo se escribirá después del contenido existente. Si el archivo no existe, cree un nuevo archivo para escribir. |
desde | Abra un archivo en formato binario para agregarlo. Si el archivo ya existe, el puntero del archivo se colocará al final del archivo. En otras palabras, el contenido nuevo se escribirá después del contenido existente. Si el archivo no existe, cree un nuevo archivo para escribir. |
a + | Abra un archivo para leer y escribir. Si el archivo ya existe, el puntero del archivo se colocará al final del archivo. Cuando se abre el archivo, estará en modo anexar. Si el archivo no existe, cree un nuevo archivo para leer y escribir. |
desde + | Abra un archivo en formato binario para agregarlo. Si el archivo ya existe, el puntero del archivo se colocará al final del archivo. Si el archivo no existe, cree un nuevo archivo para leer y escribir. |
2.1.1.2 Experiencia rápida
f = open('test.txt', 'w')
Nota: Este
f
esopen
el objeto de archivo de la función.
2.1.2 Método de objeto de archivo
2.1.2.1 Escritura
- gramática
对象对象.write('内容')
- Experiencia
# 1. 打开文件
f = open('test.txt', 'w')
# 2.文件写入
f.write('hello world')
# 3. 关闭文件
f.close()
Nota:
w
a
Modo de suma : si el archivo no existe, cree el archivo; si el archivo existe, elw
modo se borra y luego se escribe, y ela
modo se agrega directamente al final.r
Modo: informe de un error si el archivo no existe.
2.1.2.2 Leer
- leer()
文件对象.read(num)
num representa la longitud de los datos que se leerán del archivo (en bytes). Si no se pasa num, significa leer todos los datos en el archivo.
- readlines ()
readlines puede leer el contenido de todo el archivo de una vez en una fila y devolver una lista, donde cada fila de datos es un elemento.
f = open('test.txt')
content = f.readlines()
# ['hello world\n', 'abcdefg\n', 'aaa\n', 'bbb\n', 'ccc']
print(content)
# 关闭文件
f.close()
- readline ()
readline () lee el contenido una línea a la vez.
f = open('test.txt')
content = f.readline()
print(f'第一行:{content}')
content = f.readline()
print(f'第二行:{content}')
# 关闭文件
f.close()
2.1.2.3 buscar ()
Rol: se utiliza para mover el puntero del archivo.
La sintaxis es la siguiente:
文件对象.seek(偏移量, 起始位置)
punto de partida:
- 0: comienzo de archivo
- 1: ubicación actual
- 2: Fin de archivo
2.1.3 Cerrar
文件对象.close()
3. Copia de seguridad de archivos
Requisito: El usuario ingresa cualquier nombre de archivo en el directorio actual y el programa completa la función de respaldo del archivo (el nombre del archivo de respaldo es el sufijo xx [respaldo], por ejemplo: prueba [respaldo] .txt).
3.1 Paso
- Reciba el nombre de archivo ingresado por el usuario
- Planificar el nombre del archivo de copia de seguridad
- Datos de escritura del archivo de copia de seguridad
3.2 Implementación del código
- Recibir el nombre del archivo de destino de entrada del usuario
old_name = input('请输入您要备份的文件名:')
-
Planificar el nombre del archivo de copia de seguridad
2.1 Extraer el sufijo del archivo de destino
2.2 El nombre del archivo de la copia de seguridad de la organización, sufijo xx [copia de seguridad]
# 2.1 提取文件后缀点的下标
index = old_name.rfind('.')
# print(index) # 后缀中.的下标
# print(old_name[:index]) # 源文件名(无后缀)
# 2.2 组织新文件名 旧文件名 + [备份] + 后缀
new_name = old_name[:index] + '[备份]' + old_name[index:]
# 打印新文件名(带后缀)
# print(new_name)
-
Datos de escritura del archivo de copia de seguridad
3.1 Archivo de código abierto y archivo de respaldo
3.2 Escriba los datos del archivo de origen en el archivo de respaldo
3.3 Cerrar el archivo
# 3.1 打开文件
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')
# 3.2 将源文件数据写入备份文件
while True:
con = old_f.read(1024)
if len(con) == 0:
break
new_f.write(con)
# 3.3 关闭文件
old_f.close()
new_f.close()
3.3 Pensamiento
Si el usuario ingresa .txt
, este es un archivo no válido, ¿cómo se puede cambiar el programa para restringir solo los nombres de archivo válidos para respaldar?
Respuesta: Solo agregue juicio de condición.
old_name = input('请输入您要备份的文件名:')
index = old_name.rfind('.')
if index > 0:
postfix = old_name[index:]
new_name = old_name[:index] + '[备份]' + postfix
old_f = open(old_name, 'rb')
new_f = open(new_name, 'wb')
while True:
con = old_f.read(1024)
if len(con) == 0:
break
new_f.write(con)
old_f.close()
new_f.close()
4. Operaciones de archivos y carpetas
La operación de archivos y carpetas en Python requiere el uso de funciones relacionadas en el módulo del sistema operativo. Los pasos específicos son los siguientes:
- Importar el módulo del sistema operativo
import os
- Usar
os
funciones relacionadas con el módulo
os.函数名()
4.1 Cambio de nombre de archivo
os.rename(目标文件名, 新文件名)
4.2 Eliminar archivos
os.remove(目标文件名)
4.3 Crear una carpeta
os.mkdir(文件夹名字)
4.4 Eliminar carpeta
os.rmdir(文件夹名字)
4.5 Obtener el directorio actual
os.getcwd()
4.6 Cambiar el directorio predeterminado
os.chdir(目录)
4.7 Obtener listado de directorio
os.listdir(目录)
5. Casos de solicitud
Requisito: para modificar los nombres de los archivos en lotes, puede agregar o eliminar la cadena de caracteres especificada.
- paso
- Establecer el logotipo para agregar y eliminar cadenas
- Obtener todos los archivos en el directorio especificado
- Agregue / elimine la cadena especificada al nombre del archivo original para construir un nuevo nombre
- os.rename () renombrar
- Código
import os
# 设置重命名标识:如果为1则添加指定字符,flag取值为2则删除指定字符
flag = 1
# 获取指定目录
dir_name = './'
# 获取指定目录的文件列表
file_list = os.listdir(dir_name)
# print(file_list)
# 遍历文件列表内的文件
for name in file_list:
# 添加指定字符
if flag == 1:
new_name = 'Python-' + name
# 删除指定字符
elif flag == 2:
num = len('Python-')
new_name = name[num:]
# 打印新文件名,测试程序正确性
print(new_name)
# 重命名
os.rename(dir_name+name, dir_name+new_name)
Seis. Resumen
-
Pasos de la operación de archivo
- encender
文件对象 = open(目标文件, 访问模式)
-
operando
- leer
文件对象.read() 文件对象.readlines() 文件对象.readline()
- escribir
文件对象.write()
- buscar()
-
apagar
文件对象.close()
-
Modo de acceso principal
- w: escribe, crea un nuevo archivo si el archivo no existe
- r: leer, informar de un error si el archivo no existe
- a: Adjuntar
-
Operaciones de archivos y carpetas
- Cambiar nombre: os.rename ()
- Obtener el directorio actual: os.getcwd ()
- Obtenga la lista de directorios: os.listdir ()