文件的操作
-
1.1 文件概念
文件是计算机中数据持久化储存的表现形式
-
1.2文件操作基本语法
格式一(手工关闭格式):
1.打开文件: file = open("文件名","读写模式")
2.操作文件: *
3.关闭文件: file.close()
格式二(免关闭格式):
1.打开文件: with open("文件名","读写模式") as file:
2.操作文件: *
3.关闭文件(自动关闭文件)
注意:
文件操作完毕后必须关闭,否则内存将长期保持对文件的连接状态,造成内存溢出的现象发生。
-
1.3文件的读写模式
读写模式 | 数据读写基本单位 | 操作权限 | 注意事项 |
---|
rb | 字节 | 读 | 读取信息,如果文件不存在报错 |
wb | 字节 | 写 | 写入信息覆盖原始信息,如果不文件存在建新 |
ab | 字节 | 追加写 | 写入信息到原始信息末尾,如果文件不存在建新 |
rb+ | 字节 | 读,写 | 读写信息,如果文件不存在报错 |
wb+ | 字节 | 读,写 | 写入信息覆盖原始信息,如果不存在建新 |
ab+ | 字节 | 读,追加写 | 写入信息到原信息末尾,如果文件不存在建新 |
r | 字符 | 读 | 读取信息,如果文件不存在建新 |
w | 字符 | 写 | 写入信息覆盖原始信息,如果文件不存在建新 |
a | 字符 | 追加写 | 写入信息到原信息末尾,如果文件不存在建新 |
r+ | 字符 | 读,写 | 读取信息,如果文件不存在报错 |
w+ | 字符 | 读,写 | 写入信息覆盖原 |
始信息,如果文件不存在建新 | | | |
a+ | 字符 | 读,追加写 | 写入信息到原信息末尾,如果文件不存在建新 |
函数名称 | 功能 | 参数 | 返回值 |
---|
read() | 读取文件中所以信息 | 无 | 文件中的所有信息 |
read(num) | 读取文件中指定数量的zifu/字节信息 | num“读取的总量 | 文件中指定数量的信息 |
readline() | 读取文件中一行信息,以/n判定是否读取完毕 | 无 | 文件中的一行信息 |
readlines() | 将文件中信息以行为单位读取到列表中 以/n判定行是否读取完毕 | 无 | 由文件中所有行信息组成的列表对象 |
函数操作 | 功能 | 参数 | 返回值 |
---|
write(str) | 将指定信息写入到文件 | str:要写入的字符串信息 | 写入的数据总量 |
writelines(model) | 将指定信息写入到文件 | model:要写入的存储模型信息,模型中数据是字符串 | 无 |
函数名称 | 功能 | 参数 | 返回值 |
---|
rename(file1,file2) | 修改文件名 | file1:原始文件名对应的路径字符 file2:新文件名对应的路径字符串 | 无 |
remove(file) | 删除文件 | file:要删除的文件对应的路径字符串 | 无 |
mkdir(file) | 创建目录 | file:要创建的目录对应的路径字符串 | 无 |
rmdir(file) | 删除目录 | file:要删除的目录对应的路径字符串 | 无 |
"""
案例:windows复制文件
分析:
1. 整体文件复制采用 rb wb模式进行
2. 复制文件需要更改名称,变化是有规则的
3. 1.txt -> 1 - 副本.txt
"""
file1_name = "d:/1.txt"
idx = file1_name.rfind(".")
# print(file1_name[0:idx])
# print(file1_name[idx:])
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()