用python操作文件

用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二进制追加

编码&解码

用python操作文件

>>>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")	#解码
'小猿圈'
上一篇:RuntimeError: CUDA error: device-side assert triggered的解决


下一篇:python入门教程07-02 (python语法入门之函数的参数)