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 文件读写操作的主要内容,如果未能解决你的问题,请参考以下文章

Python3 从零单排2_文件读写

python3 文件操作

学习笔记:python3,代码片段(2017)

[Python3]INI文件读写

python3文件操作

Python3 对文件操作