我正在尝试创建一个Python代码来计算文本每行的单词数。
我的文字由以下电影标题组成:
We Still Steal the Old Way Demon Immortal Wars The Portal Selfie from Hell The Bad Nun Astro Diggerz: Black Lung Rises Battle Drone How to Train Your Dragon 3
我创建的代码如下:
f = open('C:/movies/sample06.txt')
for x in f:
line = f.readline()
print(line, end='')
words = line.split(" ")
print(words)
num_words = len(words)
print(num_words)
我得到的是:
Demon ['Demon\n'] 1 The Portal ['The', 'Portal\n'] 2 The Bad Nun ['The', 'Bad', 'Nun\n'] 3 Diggerz: Black Lung Rises ['Diggerz:', 'Black', 'Lung', 'Rises\n'] 4 How to Train Your Dragon 3 ['How', 'to', 'Train', 'Your', 'Dragon', '3\n'] 6
我的问题是: 如何获得上面每个电影标题的结果? 这里的结果显示了其他所有电影标题的结果。
答案 0 :(得分:1)
您的代码开头为:
f = open('C:/movies/sample06.txt')
for x in f:
line = f.readline()
您可以在f
循环中逐行遍历文件for
。但是,只要将文件中的下一行读入x
,就将下一行读入line
。由于您对x
不执行任何操作,因此此行会丢失。
因此,您不必使用readline()
来遍历文件行。只要做:
with open('C:/movies/sample06.txt') as f:
for line in f:
print(line, end='')
words = line.split(" ")
print(words)
num_words = len(words)
print(num_words)
请注意with open....
惯用法,该惯用法可确保关闭文件,无论脚本中发生什么情况。