我正在尝试从目录中打开一堆文件,并尝试将结果放在列表列表中,也就是说,
也就是说, 我有一个目录的文件名列表,我想阅读其中的每一个。 阅读完每个文件后,我想将每个文件的结果放在一个列表中。 将再次插入这些列表以创建列表列表。
这样做我试着写如下:
list_of_files = glob.glob('C:\Python27\*.*')
print list_of_files
list1=[]
list2=[]
list_N=[list1,list2]
for i,j in zip(list_of_files,list_N):
print i,j
x1=open(i,"r").read()
x2=j.append(x1)
all_sent=list_N
print all_sent
我做错了吗?如果有人建议吗? 有没有更聪明的方法呢?我在Windows 7专业版上使用Python2.7。 你有很多Python列表问题我一般都有 审查了他们。我发帖,因为我不匹配。道歉 交叉发布。如果你可以指导我以前的帖子,我 肯定会删除我的帖子。
答案 0 :(得分:0)
尝试使用以下列表理解:
list_of_files = glob.glob('C:\Python27\*.*')
data = [open(file, 'r').read() for file in list_of_files]
答案 1 :(得分:0)
假设你的意思是你希望每个内部数组都由你正在阅读的文件的每一行组成,你可以在获取文件列表后只在一行(从另一个答案修改)中完成它:
data = [open(f, 'r').readlines().split('\n') for f in list_of_files]
要打破它:
open(f, 'r').readlines()
这是打开一个文件并读取整个文件中的所有字符作为临时存储的字符串。
.split('\n')
这告诉Python将字符串转换为数组并使用endline字符来知道数组的一个元素的结束位置。
这转变
这是一份文件。
它包含有用的信息。
就是这样。
到
["This is a document", "It contains useful info.", "That is all."]
最后,
for file in list_of_files
数组括号内的表示您正在使用循环创建数组,以便每次迭代都返回一个要添加到数组的新元素。