作用:把一些内容(数据)存储起来,可以让程序下一次执行时直接使用,而不用重新制作。
1. 文件操作步骤
- 打开文件
- 读写等操作
- 关闭文件
注:可以指打开和关闭文件,不进行任何读写操作。
1.1. 打开
python中,使用open()函数可以打开一个已存在文件或创建一个新文件。
语法:
open(name,mode)
name:要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
-
打开文件模式
|模式|说明|
|:----😐:-----|
|r|以只读方式打开文件。文件的指针会放在文件的开头。这是默认模式。|
|rb|以二进制格式打开文件用于只读。文件指针会放在文件的开头。这是默认模式。|
|r+|打开一个文件用于读写。文件指针会放在文件的开头。|
|rb+|以二进制格式打开文件用于读写。文件指针会放在文件的开头。|
|w|打开文件只用于写入。若文件存在则打开该文件,并从开头开始编辑,即原有内容会删除。若文件不存在则自动创建新文件。|
|wb|以二进制格式打开文件只用于写入。若文件存在则打开该文件,并从开头开始编辑,即原有内容会删除。若文件不存在则自动创建新文件。|
|w+|打开一个文件用于读写。若文件存在则打开该文件,并从开头开始编辑,即原有内容会删除。若文件不存在则自动创建新文件。|
|wb+|以二进制格式打开文件用于读写。若文件存在则打开该文件,并从开头开始编辑,即原有内容会删除。若文件不存在则自动创建新文件。|
|a|打开一个文件用于追加。若文件已存在,文件指针会放在文件的结尾。即添加新内容时,新内容会添加到已有内容之后。若文件不存在则自动创建新文件。|
|ab|以二进制格式打开文件用于追加。若文件已存在,文件指针会放在文件的结尾。即添加新内容时,新内容会添加到已有内容之后。若文件不存在则自动创建新文件。|
|a+|打开一个文件用于读写。若文件已存在,文件指针会放在文件的结尾。文件打开时会是追加模式若文件不存在则自动创建新文件。|
|ab+|以二进制格式打开文件用于追加。若文件已存在,文件指针会放在文件的结尾。若文件不存在则自动创建新文件用于读写。| -
示例
f1=open('test.txt','w') # f1是open函数的文件对象
1.2. 文件对象方法
-
写
- 语法
文件对象.write('内容')
- 示例
f1=open('test1.txt','w') f1.write('Hello World!') f1.close()
-
读
- read()
文件对象.read(num)
注:num表示要从文件中读取的数据长度(单位是字节),若没有传入num,则读取文件所有数据。
- readlines()
readlines可以按照行的方式把整个文件中的内容进行一次性读取,并返回一个列表,其中每一行的数据为一个元素。
f1=open('test2.txt') content=f1.readlines() print(content) f1.close
- readline()
readline()一次读取一行内容。
f1=open('test2.txt') content=f1.readline() print(f'第一行:{content}') content=f1.readline() print(f'第二行:{content}') f1.close
- seek()
作用:用于移动文件指针。
语法:
文件对象.seek(偏移量,起始位置)
1.3. 关闭
文件对象.close()
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()
须导入os模块
import os
1. 重命名文件
os.rename(目标文件名,新文件名)
2. 删除文件
os.remove(目标文件名)
3. 创建文件夹
os.mkdir(文件夹名)
4. 删除文件夹
os.rmdir(文件夹名)
5. 获取当前目录
os.getcwd(文件夹名)
6. 改变默认目录
os.chdir(文件夹名)
7. 获取目录列表
os.listdir(目录)
15
Levi_5