所以我正在读取python中的文本文件,并希望得到文件中所有单词的列表。我是通过这种方法这样做的。
def parse_in(file_location, input_name):
all_words = []
with open(file_location + input_name,'r') as f:
for line in f:
for word in line.split():
all_words += word
f.close
return all_words
而不是all_words返回实际的单词,它返回单个字符的列表,如['A', 'B', 'C']
等。
但是在调试时我可以看到变量字是一个实际的单词而不仅仅是字符。我在哪里错了?
使用
all_words.append(word)
代替
all_words += word
如果使用+=
,则将word
视为序列,因此各个字符都会附加到列表中。
或者,您可以使用+=
,并简化您的循环:
for line in f:
all_words += line.split()
尝试这个:
def parse_in(file_location, input_name):
all_words = []
with open(file_location + input_name,'r') as f:
for line in f:
all_words += line.split()
return all_words
all_words += word
用all_words
中的项目扩展名单word
。由于word
是一个字符串,所以附加了字符,就像你用for
迭代它一样。
使用all_words.append(word)
将单词附加到单词列表中。
如果您使用上下文管理器,则无需关闭文件,为简单起见,您只需读取整个文件并使用split方法即可
def parse_in(file_location, input_name):
all_words = []
with open(file_location + input_name,'r') as f:
all_words = f.read().split()
return all_words