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(?)