[Python] 关于读写*.txt文件的那点事

00.写在前面

  最近由于经常需要操作文本文件,所以涉及到很多文本文件的读写操作,也做一个简单的总结,方便自己以后查阅,也方便大家阅读。
  python版本:2.7.13
  

01.关于文件读取的方法

(1)利用 read() 一次性读取。这里针对小文件,可以一次性读取所有内容到内存,然后存成一个str 类型的变量。

Rootpath='F:\\Points_DEMs.txt'
with open(Rootpath, 'r') as fa:
    fa.read()

(2)利用readline() 按行读取文件,或者利用readlines()获得一个迭代器,以供循环。

Rootpath='F:\\Points_DEMs.txt'
with open(Rootpath, 'r') as fa:
    #for line in fa.readlines():
    for line in fa:
        # 整行数据以','分割且忽略末尾的换行符('\n')
        points = line[:-1].split(',')
        # 字符转换为数值型
        points = [float(xx) for xx in points]

Ps1.
  这里同样的还有file.next(),和readline()相同逐行读取,但是在没读到数据的时候会报错

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

Ps2.
  在这里注意区分readlines()read(),其实两者都读取全部数据到内存中,但是前者是形成一个行迭代器,可以迭代出所有行的内容,后者是把所有内容存在一个str 对象里面(所有内容全都合并到了一起)。
  但是readlines() 的速度会比单纯按行readline() 读取要快很多。
  

02.关于文件写入的方法

  文件写入的主要思路也是:打开-写入-关闭。利用with open as可以完成两步。
  暂时只接触到这两种方法,后面还有再补充,也欢迎大家补充。
(1) 逐行写入

with open(outputpath, 'w') as fout:
    result = "your result" 
    fout.write(result )

(2) 多行写入

with open(outputpath, 'w') as fout:
    result = ['\nhello dear!','\nhello son!','\nhello baby!\n']
    fout.writelines(result )
03.关于文件读写模式选择

  常用的一些主要模式如下表:

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

  
最后,如果有什么错误,欢迎大家指出,不能有错误误导了别人。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值