python文件操作
为什么要使用文件编码?
*文件的读取
open() 和 readlines()
open() 打开文件
readlines() 读取全部的内容,读出的内容带换行符
打开文件 注意路径要用左/
注意如果连续调用read() / readlines (),下次开始读取会在上次结束的地方继续读
#打开文件 注意路径要用左/
f = open("C:/Users/kwok/Desktop/test.txt", "r",encoding="utf-8")
print(type(f))
#读取文件
#注意如果连续调用read(),下次开始读取会在上次结束的地方继续读
#content1 = f.read(10) #读取10个字节
#content2 = f.read() #读取全部字节
#print(f"读取10个字节的的结果是:{content1}")
#print(f"读取全部内容的结果是:{content2}")
#返回的是列表对象
lines= f.readlines()
print(type(lines))
print(f"lines的内容是{lines}")
返回结果
readline()
一行一行读数据
*for循环读取文件行
#打开文件 注意路径要用左/
f = open("C:/Users/kwok/Desktop/test.txt", "r",encoding="utf-8")
print(type(f))
for line in f:
print(f"{line}")
#关闭文件
f.close()
*with open()
with open自动就close()关闭文件了
#with open自动就close()关闭文件了
with open("C:/Users/kwok/Desktop/test.txt","r",encoding="utf-8") as f:
for line in f:
print(f"{line}")
总结
文件的写出
open() 的 w模式 如果在写入文件的时候,文件不存在,会自动创建新的文件
如果文件里面原来有内容,会把原内容清空
#open()的w模式:如果在写入文件的时候,文件不存在,会自动创建新的文件
#如果文件里面原来有内容,会把原内容清空
f = open("C:/Users/kwok/Desktop/test.txt","w",encoding="utf-8")
#write()写入缓存
f.write("hello world")
# flush()刷新写入硬盘
#f.flush()
#关闭文件,内置了flush()的刷新写入硬盘
f.close()
文件的追加
open()的a模式:如果在写入文件的时候,文件不存在,会自动创建新的文件
如果文件里面原来有内容,会在原内容之后追加
#open()的a模式:如果在写入文件的时候,文件不存在,会自动创建新的文件
#如果文件里面原来有内容,会在原内容之后追加
f = open("C:/Users/kwok/Desktop/test.txt","a",encoding="utf-8")
#write()写入缓存 , \n表示换行
f.write("\nhello happy")
# flush()刷新写入硬盘
#f.flush()
#关闭文件,内置了flush()的刷新写入硬盘
f.close()
案例: 文件备份
题目要求
fr = open("C:/Users/kwok/Desktop/bill.txt","r",encoding="utf-8")
fw = open("C:/Users/kwok/Desktop/bill.txt.bak","w",encoding="utf-8")
line = fr.readline()
for line in fr:
#移除字符串两端的空格
line = line.strip()
if line.split(",")[3]=="测试":
continue #continue进入下一次循环
fw.write(line)
fw.write("\n")
fr.close()
fw.close()