python3 文件读写操作
Posted children92
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 文件读写操作相关的知识,希望对你有一定的参考价值。
如何在Python读写文件?
四部曲:
open文件
read文件
write文件
close文件
例子:
如何打开children文件并且显示
data=open(‘children‘) #指向要打开的文件 f=data.read() #读取文件内容,并且赋值给f print(f) #打印文件 data.close() #关闭文件,相当于归还内存
文件打开默认是只读权限,但是我们在打开文件的时候可以追加其他权限,例如读写
data=open(‘children‘,‘r+‘,encoding=‘utf-8‘) f=data.read() print(f) print(data.readable()) #查看data这个文件是否可读 print(data.writable()) #查看data这个文件是否可写
data.close()
运行结果:
hello word
True
True
逐行读取文件内容
利用for循环去读取
data=open(‘children‘,‘r‘,encoding=‘utf-8‘) for i in range(1,5): f=data.readline() print("打印第%d 行:" %i,f)
运行结果:
打印第1 行: my name is children
打印第2 行: come from beihai
打印第3 行: like bie
打印第4 行: chenchaozhen
如果不用for循环的话,只能一行行写
data=open(‘children‘,‘r‘,encoding=‘utf-8‘) f=data.readline() print("第一行",f) f=data.readline() print("第二行",f) f=data.readline() print("第三行",f) f=data.readline() print("第四行",f) f=data.readline() print("第五行",f) data.close()
运行结果:
打印第1 行: my name is children
打印第2 行: come from beihai
打印第3 行: like bie
打印第4 行: 陈朝振
注意readline是读取一行,而readlines则是读取全部并且以列表的形式保存
data=open(‘children‘,‘r‘,encoding=‘utf-8‘) print(data.readlines()) #readlines 是读取所有行 成一个列表形式
运行结果:
[‘1 ‘, ‘2 ‘, ‘2 ‘, ‘3 ‘, ‘4 ‘, ‘5 ‘]
为什么会有个 呢?
因为Windows平台换行符就是
如何将指定的内容写入文件?
在open文件的时候赋予w权限即可
data=open(‘children‘,‘w‘,encoding=‘utf-8‘) #写模式 data.write("11112222") # data.close()
##注意w权限是重新创建一个同名文件,然后覆盖源文件
##其实文件的修改可以理解为覆盖,用新的内容去覆盖旧的内容
跟readlines一样,writelines也是一样的,只不过一个是读 一个是写
data=open(‘children‘,‘w‘,encoding=‘utf-8‘) data.writelines("11112222 ") #逐行写入 data.writelines("11112222 ")#不会覆盖上一行,相当于列表写入 data.writelines("1223123") data.close()
还可以这样写入:
data=open(‘children‘,‘w‘,encoding=‘utf-8‘) data.writelines([‘chen chao zhen ‘,‘xu zhen zhi ‘]) #所以如果要写入多行,可以以列表形式写入 data.close()
#但是要注意,列表插入的形式最后要加入一个
#追加模式,不会清空源文件,内容追加到文件最后
data=open(‘children‘,‘a‘,encoding=‘utf-8‘) #追加模式 data.writelines([‘chen chao zhen ‘,‘xu zhen zhi ‘]) data.close()
文件没有修改这么一说,只有覆盖
r 读模式
w 写模式(重新创建一个空的同名文件)
a 追加模式(写入内容追加到文件的最后一行)
r+ 读写模式(写入内容会从文件开头覆盖,并不是创建空的同名文件)
w+ 写读模式(重新创建一个空的同名文件)
a+ 追加读写模式(跟a模式一样)
1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数
apple 10 3
tesla 100000 1
mac 3000 2
lenovo 30000 3
chicken 10 3
在文件打开还有一个关键字with
with open(‘children‘,‘r+‘) as name: print(name.readlines())
打开文件并且创建变量指向文件,可以一步完成
with open("a.txt",‘r‘) as much: res=[] res1=[] for line in much: res.append(line) for i in range(0,5): a=int(res[i].split()[1]) b=int(res[i].split()[2]) res1.append(a*b) print(sum(res1))
运行结果:
196040
以上是关于python3 文件读写操作的主要内容,如果未能解决你的问题,请参考以下文章