目录
一、文件操作
1、文件操作流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过文件句柄对文件进行操作
3.关闭文件
2、文件打开模式
f = open("file_test","r",encoding = "utf-8") #打开文件,“读模式”,只能读,得到文件句柄并赋值给一个变量
print(f.read()) #读文件所有内容,读完之后文件光标跳到最后,文件大时慎用
f.close()
f1 = open("file_test","w",encoding="utf-8") #写模式,会新建一个file_test文件,再往里写入
f1.write("-------------")
f1.close()
f2 = open("file_test","a",encoding="utf-8") #追加模式,在原文件内容最后追加,无原文件则新建
f2.write("-------------")
f2.close()
f3 = open("file_test","r+",encoding="utf-8") #读写模式,写在原文件内容最后追加,无原文件则新建
print(f3.readline()) #按行读
print(f3.readline())
print(f3.readline()) #打印前三行,这个时候光标移动到第三行位置
print(f3.tell()) #打印光标位置
f3.write("--------------") #但是写入还是文件内容最后写入
f3.close()
f4 = open("file_test","w+",encoding="utf-8") #写读模式,,只要是“写在前”都会建一个新文件,在写入
f4.write("----------------------\n")
f4.write("----------------------\n")
f4.write("----------------------\n")
f4.seek(10) #光标移动到10的位置
f4.write("test4") #再写入会将原内容覆盖
f4.seek(0) #将光标移动到开头的位置
print(f4.read())
f4.close()
#输出
#----------ni hao -----
#----------------------
#----------------------
f5 = open("file_test","a+",encoding="utf-8") #追加读模式,在原文件内容最后追加,无原文件新建
f5.write("----------------------\n")
f5.write("----------------------\n")
f5.write("----------------------\n")
f5.seek(10) #光标移动到10的位置
f5.write("test5") #再写入会在文件内容最后写入
f5.seek(0)
print(f5.read())
f5.close()
f6 = open("file_test","rb") #以二进制文件格式读这个文件
print(f6.readline())
print(f6.readline())
print(f6.readline())
f6.close()
f7 = open("file_test","ab") #以二进制文件格式追加这个文件
f7.write("-------------------\n".encode()) #encode 将str字符转换为bytes
f7.write("-------------------\n".encode())
f7.write("-------------------\n".encode())
f7.close()
f8 = open("file_test","wb") #以二进制文件格式写这个文件
f8.write("-------------------\n".encode()) #encode 将str字符转换为bytes
f8.write("-------------------\n".encode())
f8.write("-------------------\n".encode())
f8.close()
#注:还有rU或r+U模式,"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
3、文件循环
#按行循环,并且将第五行替换
f = open("file_test","r",encoding="utf-8")
count = 0
for line in f:
count += 1
if count == 5:
print("----分割线----")
continue
print(line.strip()) #strip是去除行首行尾的空格符和换行符
f.close()
#f.readlines() #切记用f.readlines是先将文件转换为列表,如果文件太大时对内存消耗太大