欢迎关注”生信修炼手册”!
读写文件是日常开发中最高频的操作,从文件中读取你需要处理的数据,根据处理逻辑编写代码,将处理好之后的结果保存到结果文件中。
读取数据通常有两种模式
第一种,读取用户的键盘输入,使用场景,让用户输入yes或者no来控制程序的走向
第二种,读取文件中的内容, 也是使用最广泛的场景
通过input函数来读取键盘输入,用法如下
>>> a = input()
hello
>>> a
'hello'
执行到input函数时,程序会先暂停,当用户输入内容,并按回车确认之后,自动将键盘输入的内容进行保存和记录。
文件内容的读取, 首先需要通过内置函数open打开文件,用法如下
>>> f = open('result.txt')
>>> f
'result.txt', mode 'r' at 0x7fbf5adaa540>
返回值我们称之为文件句柄,可以看到在返回值中显示了mode值,这个值对应的是文件的打开模式,常用的有以下3种
r, 只读模式
w,写入模式, 原有的内容会被忽略
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方法来读取文件,用法如下
>>> f = open('result.txt')
>>> f.read()
'A\nB\nC\nD\nE\nF\n'
>>>
>>>
>>> f = open('result.txt')
>>> f.readline()
'A\n'
>>> f.readline()
'B\n'
>>>
>>>
>>> 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语句会自动执行关闭句柄的操作,这样简化了代码,不要每次都去写关闭句柄的操作。
原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。
扫描下方二维码,关注我们,解锁更多精彩内容!