文件的操作
-
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()