Python文件操作
计算机中数据持久化的表现形式
读写文件标准格式一
打开?
read write
file = open("文件路径+文件名", "操作模式")
操作✍
file.write("要写入的字符串")
关闭?
file.close()
⚠注意:
文件操作完毕后必须关闭,否则将长期保持对文件的链接状态,造成内存溢出的现象发生
读写文件标准格式二(免关闭格式)
打开文件:
with open("文件名", "读写模式") as file:
执行操作
关闭文件(自动关闭文件)
读写模式 |
数据读写基本单位 |
操作权限 |
注意事项 |
rb |
字节 |
读 |
读取信息,如果文件不存在报错 |
wb |
字节 |
写 |
写入信息覆盖原始信息,如果文件不存在新建 |
ab |
字节 |
追加写 |
写入信息到原信息末尾,如果文件不存在新建 |
rb+ |
字节 |
读、写 |
读取信息,如果文件不存在报错 |
wb+ |
字节 |
读、写 |
写入信息覆盖原始信息,如果文件不存在新建 |
ab+ |
字节 |
读、追加写 |
写入信息到原信息末尾,如果文件不存在新建 |
r |
字符 |
读 |
读取信息,如果文件不存在报错 |
w |
字符 |
写 |
写入信息覆盖原始信息,如果文件不存在新建 |
a |
字符 |
追加写 |
写入信息到原信息末尾,如果文件不存在新建 |
r+ |
字符 |
读、写 |
读取信息,如果文件不存在报错 |
w+ |
字符 |
读、写 |
写入信息覆盖原始信息,如果文件不存在新建 |
a+ |
字符 |
读、追加写 |
写入信息到原信息末尾,如果文件不存在新建 |
操作格式/函数名称 |
功能 |
参数 |
返回值 |
read() |
读取文件中所有信息 |
无 |
文件中的所有信息 |
read(num) |
读取文件中指定数量的字符/字节信息 |
num:每次读取的数据总量 |
文件中指定数量的信息 |
readline() |
读取文件中一行信息,以/n判定行是否读取完毕 |
无 |
文件中的一行信息 |
readlines() |
将文件中信息以行为单位读取到列表中,以/n判定行是否读取完毕 |
无 |
由文件中所有行信息组成的列表对象 |
操作格式/函数名称 |
功能 |
参数 |
返回值 |
write(str) |
将指定信息写入到文件 |
str:要写入的字符串信息 |
写入的数据总量 |
writelines(model) |
将指定信息写入到文件 |
model:要写入的存储模型信息,模型中数据是字符串 |
无 |
案例
# 读写
file1 = open("test.txt", "w+")
file1.write("Hello world!")
file1.seek(0) # 将游标设置到指定位置
info = file1.read()
print(info)
file1.close()
file1 = open("test.txt", "r")
info1 = file1.read()
print(info1) # 能输出内容
info1 = file1.read()
print(info1) # 输出空内容
file1.close()
file1 = open("test.txt", "wb")
file1.write("你好!你已达成文件读写成就!".encode("utf-8"))
file1.close()
推荐:
由纯文本编辑得到的文件读写使用字符模式
非纯文本编辑得到的文件读写使用字节模式
通用性:
字节模式 > 字符模式
?文件路径
文件在计算机存储器(例如硬盘)中保存的位置称为文件路径
相对路径
从程序运行所在的目录位置描述其他文件的保存路径
\\ 路径符号
/路径符合
绝对路径
从系统定义的存储位置描述文件的保存路径
⚠:w模式 不能创建目录
文件相关操作
import os
os.rename("oldname","newname") # 可以移动文件
os.remove("文件路径名") # 删除
os.mkdir("")
操作格式/函数名称 |
功能 |
参数 |
返回值 |
rename(file1,file2) |
修改文件名 |
file1:原始文件名对应的路径字符串 file2:新文件名对应的路径字符串 |
无 |
remove(file) |
删除文件 |
file:要删除的文件对应的路径字符串 |
无 |
mkdir(file) |
创建目录 |
file:要创建的目录对应的路径字符串 |
无 |
rmdir(file) |
删除目录 |
file:要删除的目录对应的路径字符串 |
无 |
""" Windows 复制文件案例 """
file1_name = "d:/1.txt"
idx = file1_name.rfind(".") # 从右侧获取·的下标
# 文件2的名称为 从0到点不含点 + 副本 + 从点到最后
file2_name = file1_name[0:idx] + "-副本" + file1_name[idx:]
file1 = open(file1_name, "rb")
file2 = open(file2_name, "wb")
while True:
info = file1.read(1024)
if len(info) == 0:
break
else:
file2.write(info)
file1.close()
file2.close()
exit(?)