为了账号安全,请及时绑定邮箱和手机立即绑定

在循环理解中使用 open() - 获取目录中所有文件的文本内容列表

在循环理解中使用 open() - 获取目录中所有文件的文本内容列表

森林海 2021-10-12 17:35:05
有没有更好的方法来使用with open(file) as f: f.read()for 循环内的机制 - 即对许多文件进行操作的循环理解?我试图将它放入一个数据帧中,以便存在从文件到文件内容的映射。这是我所拥有的 - 但它似乎效率低下并且不是pythonic/可读的:documents = pd.DataFrame(glob.glob('*.txt'), columns = ['files'])documents['text'] = [np.nan]*len(documents)for txtfile in documents['files'].tolist():    if txtfile.startswith('GSE'):        with open(txtfile) as f:            documents['text'][documents['files']==txtfile] = f.read()输出:    files   text0   GSE2640_GSM50721.txt    | RNA was extracted from lung tissue using a T...1   GSE7002_GSM159771.txt   Array Type : Rat230_2 ; Amount to Core : 15 ; ...2   GSE1560_GSM26799.txt    | C3H denotes C3H / HeJ mice whereas C57 denot...3   GSE2171_GSM39147.txt    | HIV seropositive , samples used to test HIV ...
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

你可以做:


# import libraries

import os,pandas


# list filenames, assuming your path is './'

files = [i for i in os.listdir('./') if i[:3]=='GSE' and i[-3:]=='txt']


# get contents of files

contents = []

for i in files:

    with open(i) as f: contents.append(f.read().strip())


# into a nice table 

table = pandas.DataFrame(contents, index=files, columns=['text'])


查看完整回答
反对 回复 2021-10-12
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号