Py学习  »  Python

python中的文件读写

生信修炼手册 • 5 年前 • 662 次点击  

欢迎关注”生信修炼手册”!

读写文件是日常开发中最高频的操作,从文件中读取你需要处理的数据,根据处理逻辑编写代码,将处理好之后的结果保存到结果文件中。

读取数据通常有两种模式

  1. 第一种,读取用户的键盘输入,使用场景,让用户输入yes或者no来控制程序的走向

  2. 第二种,读取文件中的内容, 也是使用最广泛的场景

通过input函数来读取键盘输入,用法如下


>>> a = input()hello>>> a'hello'

执行到input函数时,程序会先暂停,当用户输入内容,并按回车确认之后,自动将键盘输入的内容进行保存和记录。

文件内容的读取, 首先需要通过内置函数open打开文件,用法如下

>>> f = open('result.txt')>>> f'result.txt', mode 'r' at 0x7fbf5adaa540>

返回值我们称之为文件句柄,可以看到在返回值中显示了mode值,这个值对应的是文件的打开模式,常用的有以下3种

  1. r, 只读模式

  2. w,写入模式, 原有的内容会被忽略

  3. a,追加模式,在原有的内容上追加

文件句柄本质是一个生成器,可以通过next函数依次打印每一行的内容

>>> next(f)'ACTB\n'>>> next(f)'GAPDH\n'>>> next(f)'PGK1\n'>>> next(f)'PPIA\n'

当然也可以循环打印,写法如下

>>> for line in f:...     print(line)...

在python中,还提供了一系列的read方法来读取文件,用法如下

# read方法一次读取所有行# 返回值为一个字符串>>> f = open('result.txt')>>> f.read()'A\nB\nC\nD\nE\nF\n'>>>>>># readline方法依次返回文件的每一行>>> f = open('result.txt')>>> f.readline()'A\n'>>> f.readline()'B\n'>>>>>># readlines方法一次读取所有行# 返回值为列表>>> f = open('result.txt')>>> f.readlines()['A\n', 'B\n', 'C\n', 'D\n', 'E\n', 'F\n']

对于文件句柄而言,打开之后,必须关闭,写法如下

>>> f = open('result.txt')>>> f.readlines()['A\n', 'B\n', 'C\n', 'D\n', 'E\n', 'F\n']>>> f.close()

文件的写入是类似的,将文件的打开模式替换为w, 并调用write方法

>>> f = open('result.txt',  'w')>>


    
> f.write('hello\n')>>> f.close()

write方法一次写入一个字符串,如果要写入多行,可以多次调用write方法,注意在字符串末尾添加换行符来正确显示。

为了更加安全方便的进行文件读写,python提供了with语句,写法如下

# 循环读取文件# 每次读取一行with open('result.txt') as f:    for line in f:        print(line)

# 写入文件# 遍历需要输出的内容列表# 每次输出一行with open('result.txt', 'w') as f: for line in list: f.write(line)

with语句会自动执行关闭句柄的操作,这样简化了代码,不要每次都去写关闭句柄的操作。

·end·

—如果喜欢,快分享给你的朋友们吧—



原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
  更多精彩



  写在最后


转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。


扫描下方二维码,关注我们,解锁更多精彩内容!


一个只分享干货的

生信公众号





Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62747
 
662 次点击