python文件操作,,文件操作流程文件操作
python文件操作,,文件操作流程文件操作
文件操作流程
文件操作流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.关闭文件
最基本的打开,只能阅读,不能操作.
data=open("file",encoding="utf-8").read()print(data)print(type(data))#字符串格
f=open("file","r",encoding="utf-8")文件句柄赋值给fdata=f.read()data2=f.read()当这里读取时,python将从上次data读取的最后开始读取,也就是什么也没有。r读取文件不能写;w创建一个文件不能读;a追加内容不覆盖文件,不能读取。f.read()阅读f.write()写文件注意:U表示在读取时,可以将\r\n自动替换成\n(与r或r+模式同使用)rUr+Ub表示处理二进制文件(如:FTP发送上传文件,linux可忽略,windows处理二进制文件时需要标注)
读取前五行
方法一、f=open("file","r",encoding="utf-8")print(f.readline())print(f.readline())print(f.readline())print(f.readline())print(f.readline())f.close()
方法二、f=open("file","r",encoding="utf-8")foriinrange(5):print(f.readline())f.close()
第五行不打印
f.readlines()是一个列表,f=open("file","r",encoding="utf-8")foriinf.readlines():print(i.strip())每行后面默认有一个换行符,用strip去掉;
方法一、f=open("file","r",encoding="utf-8")forindex,iinenumerate(f.readlines()):ifindex==4:print("------分割线--------")continueprint(i.strip())
方法二、f=open("file","r",encoding="utf-8")count=0foriinf:f已经成为一个迭代器ifcount==4:print("------分割线-------")count+=1continue结束本次循环,进行下一次循环print(i.strip())count+=1
文件方法:
f = open("file","r",encoding="utf-8")
查看当前指针位置
print(f.tell())print(f.readline())print(f.tell())
指针回到文件开头
f.seek(0)print(f.tell())
查看文件编码
print(f.encoding)
做异常处理 f.errors
查看是不是一个终端设备
print(f.isatty())
判断光标是否可以移动,可以True 否则False
print(f.seekable())
判断文件是否可读
print(f.readable())
判断文件是否可写
print(f.writable())
强制刷新;用于实时将写的数据写到硬盘上;
print(f.flush())
flush 事例进度条
importsys,timeforiinrange(100):sys.stdout.write("")foriinrange(100):sys.stdout.write("")sys.stdout.flush()time.sleep(0.1)
判断文件是否关闭
print(f.closed)
截断
f=open("file","a",encoding="utf-8")f.truncate()不加参数清空文件f.truncate(10)从文件开始截断10个字节
文件读写模式打开(读和追加写)
f=open("file","r+",encoding="utf-8")print(f.readline())f.write("===============")print(f.readline())f.close()
文件写读模式打开(创建一个新文件写和读,然后在追加写。)
f=open("file","w+",encoding="utf-8")print(f.readline())f.write("===============\n")f.write("===============\n")print(f.seek(10))print(f.readline())f.write("+++++++++++++++\n")print(f.seek(10))print(f.readline())f.close()
文件追加读写模式打开(可以追加写和读)
f=open("file","a+",encoding="utf-8")print(f.tell())print(f.readline())f.write("===============\n")f.write("===============\n")print(f.seek(10))print(f.readline())f.write("+++++++++++++++\n")print(f.seek(10))print(f.readline())f.close()
文件二进制编码方式读;应用于网络传输
f=open("file","rb")print(f.readline())
文件二进制编码方式写;应用于网络传输
f=open("file","wb")print(f.write("hhhhhhh".encode()))默认是utf-8模式f.close()
文件二进制编码方式追加;应用于网络传输
f=open("file","ab")print(f.write("hhhhhhh".encode()))默认是utf-8模式f.close()
文件修改
1.全部加载到内存里,重新写到文件里
2.修改后,写在另一个文件里
f=open("file","r",encoding="utf-8")f2=open("file2","w",encoding="utf-8")foriinf:if"2222"ini:i=i.replace("2222","BBBB")#i.replace替换功能f2.write(i)f.close()f2.close()
文件操作自动关闭with
特点:自动关闭文件。
为了避免打开文件后忘记关闭,可以通过管理上下文。
例如:withopen("file","r")asf:print(f.readline())
python2.7以后可以同时打开多个文件。
withopen("file","r")asf,open("file2","r")asf2:foriinf:print(i.strip())fori2inf2:print(i2.strip())
(python官方要求:一行代码不要超过80个代码;)
本文出自 “506554897” 博客,请务必保留此出处http://506554897.blog.51cto.com/2823970/1945833
python文件操作
评论关闭