Python 只返回第一个项目
在下面的函数中,我试图返回多个.txt文件的全文并将结果附加到列表中,但是,我的函数仅返回目录中第一个文件的文本。也就是说,如果我将return替换为print,它会在自己的行中将所有结果记录到控制台中,但我似乎无法将结果附加到列表中。返回函数有什么问题吗。 谢谢Python 只返回第一个项目,python,list,return,Python,List,Return,在下面的函数中,我试图返回多个.txt文件的全文并将结果附加到列表中,但是,我的函数仅返回目录中第一个文件的文本。也就是说,如果我将return替换为print,它会在自己的行中将所有结果记录到控制台中,但我似乎无法将结果附加到列表中。返回函数有什么问题吗。 谢谢 您正在将return放入循环中。我想你想做什么。尽管如此,您可以在这里生成值 for file in matching_txt: f = open(file, "r") .... full_text.appen
您正在将
return
放入循环中。我想你想做什么。尽管如此,您可以在这里生成值
for file in matching_txt:
f = open(file, "r")
....
full_text.append(all_seqs)
return full_text
您可以将函数转换为在内存使用方面更高效的生成器:
def fulltext():
for file_name in matching_txt:
with open(file_name) as f:
ftext = f.read()
all_seqs = ftext.split("title ")
yield all_seqs
然后将生成器转换为一个列表(如果它们不是巨大的),否则,如果要使用生成器的项,您可以简单地循环结果:
full_text = list(fulltext())
您职能中的一些问题:
首先,不要使用python内置名称作为变量名(在本例中为文件名)。
其次,对于处理文件(和其他内部连接),最好使用
with
语句,该语句将自动关闭块末尾的文件。修复函数中的缩进(返回在循环内)
full_text = list(fulltext())