首页 > 解决方案 > 如何拆分每行中的单词?

问题描述

我编写了一个代码来获取文本文件的一行中的每个单词。请看下文。

fname = input('Enter your file name:')
try:
    fhand = open(fname)
except:
    print('File cannot be opened:', fname)
word=[]
for word in fhand:
    word = word.split()
    print(word)

我运行这段代码,我得到了我想要的。但是,当我刚刚运行时print(word),它只显示最后一行的单词。我想我一开始没有定义word。然后我添加word = []但结果是一样的。

在此处输入图像描述

标签: pythonsplit

解决方案


在你的循环中 -

for word in fhand:

每次循环时都重新分配变量“word”。由于您将“单词”列为列表,因此您需要将新行附加到它而不是重新分配它。此外,两次使用“单词”可能存在一些问题,一次作为列表,一次在 for 循环计数器中。尝试类似的东西 -

word = []
fname = input('Enter your file name:')
with open(fname, 'r') as file:
   for line in file:
       word.append(line.split())

推荐阅读