用python操作文件
用word操作一个文件的流程:
1.找到文件,双击打开
2.读或修改
3.保存&关闭
用python操作文件
f = open(filename) #打开文件
f.write("我是翟里普") #写操作
f.read() #读操作
f.close() #保存并关闭
操作模式
-
r只读操作
-
w创建模式,若文件已存在,则覆盖旧文件
-
a追加文件,新数据会写到文件末尾
创建文件
f = open(file="D:/xx/xx.txt",mode='w')
f.write("Hello Zhai Li pu\n")
f.write("姑娘好\n")
f.close()
只读模式
f = open(file='xx.txt',mode='r')
print(f.readline()) #读一行
print('------分隔符------')
data = f.read() #读剩下的所有
print(data)
f.close()
追加模式
f = open(file='xx.txt',mode='a')
f.write("xxxx xxx xx x\n") #会追加到文件尾部
f.close()
循环文件
数据源:
马纤羽 深圳 173 50 13744234523
乔亦菲 广州 172 52 15823423525
罗梦竹 北京 175 49 18623423421
刘诺涵 北京 170 48 18623423765
岳妮妮 深圳 177 54 18835324553
贺婉萱 深圳 174 52 18933434452
叶梓萱 上海 171 49 18042432324
f = open(file='xx.txt',mode='r')
for line in f:
line = line.split()
name,addr,height,weight,phone = line
height = int(height)
weight = int(weight)
if height > 170 and weight <= 50:
print(line)
f.close()
其他功能
mode(self) 返回文件或打开的模式
name(self) 返回文件名
fileno(self, *args, **kwargs) 返回文件句柄在内核中的索引值,以后做IO多路复用时可以用到
flush(self, *args, **kwargs) 把文件从内存buffer里强制刷新到硬盘
readable(self, *args, **kwargs) 判断是否可读
readline(self, *args, **kwargs) 只读一行,遇到\r or \n为止
seek(self, *args, **kwargs) 把操作文件的光标移到指定位置
seekable(self, *args, **kwargs) 判断文件是否可进行seek操作
tell(self, *args, **kwargs) 返回当前文件操作光标位置
truncate(self, *args, **kwargs) 按指定长度截断文件
writable(self, *args, **kwargs) 判断文件是否可写
混合模式
w+ 写读 , 这个功能基本没什么意义,它会创建一个新文件 ,写一段内容,可以再把写的内容读出来,没什么卵用。
r+ 读写,能读能写,但都是写在文件最后,跟追加一样
a+ 追加读,文件 一打开时光标会在文件尾部,写的数据全会是追加的形式
以二进制模式操作文件
f = opne(file='xx.txt',mode='wb') #wb以2进制模式打开文件
s = "自学编程".encode('utf-8') #自行编码
print(s)
f.writw(s)
f.close()
2进制模式打开文件有
- wb二进制创建
- rb二进制读
- ab二进制追加
编码&解码
>>>s = "小猿圈"
>>>s.encode("utf-8") #编码
b'\xe5\xb0\x8f\xe7\x8c\xbf\xe5\x9c\x88'
>>>s_utf8 = s.encode("utf-8")
>>>s_utf8.decode("utf-8") #解码
'小猿圈'