python文件读写_python--文件读写

python文件读写分为三步

打开文件,获取句柄;操作文件;关闭文件

文件基本操作如下:

1 f = open("E:\\person_practice\\python\\test.txt","r") #打开文件

2 fr = f.read() #读取文件

3 print(fr)

文件打开时,需指定文件路径、打开方式,windows文件路径如果是“E:\person_practice\python\test.txt”,需要把"\"做转移,或者改成:

"E:/person_practice/python/test.txt"

打开方式分为r、w、a三种方式 ,【+】表示可以同时读写

r  只读,默认模式

w  只写,不可读,若文件不存在则创建,若存在,则删除内容,写入新内容

a  只追加,不可读,若文件不存在则创建,存在则追加新内容

r+  可读、可写、可追加,若文件不存在,则报错

w+  可读、可写,若文件存在,内容会被清空,可读新写入的内容

a+  可读、可写、可追加,若文件存在,则追加新内容,读时默认指针在文件末尾,若需读取整个文件,需把指针归零【f.seek(0)】

此种方式打开文件,需要在使用结束后及时关闭文件,可以使用【with】方法来解决:

with open("F:\\python_scripts\\py\\test.txt ","r") as fr:  #以r形式打开文件for line infr:                   #一行一行读取print(line)

此种方式会在使用完文件句柄后,自动关闭该文件。

常用文件操作命令

fr.read() #读取所有内容

fr.readline() #读取一行

fr.readlines() #读取所有文件内容,返回一个list

#以上三个命令在大文件时慎用,会把内容读到内存中,占用大内存

fr.seek(0) #当前文件指针位置在0位

fr.writelines(["a","b"]) #把列表写入文件

文件修改

修改文件有两种方式,一种是把文件内容读取到内存,清空并重写;第二种是把修改后的文件内容写到一个新文件中;

第一种方式

1 with open("F:\\python_scripts\\py\\test.txt","r+") as fr: #以读的方式打开

2 res = fr.read() #读取文件到内存

3 new_res = res.replace("学习","study") #修改文件内容

4 fr.write(new_res) #修改的内容重写进文件

5 print(new_res)

第二种方式

with open("test_1.txt","r") as fr, open("test_2.txt","w+") as fw: #同时打开多个文件

for line in fr: #循环读取每一行

new_line = line.replace("1","a") #把1改为a

fw_new = fw.write(new_line) #把修改后的内容写到fw里

另:

因文件流操作包含缓存机制,write方法不直接写入文件,而是先写入内存的缓存区,等缓存区满了之后再写入文件,并清空缓存区;

若要实时写入文件,就需要用到 f.flush()方法:

1 #打开文件

2 f = open("test.txt", "w+")3

4 f.write("flush")5

6 #刷新缓冲区,并写入文件

7 f.flush()8

9 #关闭文件

10 f.close()

参考资料见: http://www.nnzhp.cn/blog/2016/12/19/python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B8%89%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E5%92%8C%E9%9B%86%E5%90%88/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值