我正在尝试在python中创建一个程序来分割文件然后打印出用户想要看到的许多单词,但是我一直遇到问题。
这是我一直在做的事情的基本版本:
f = open("randomFile.txt",'r')
for idx in range(3):
l = f.readline()
w = l.split()
for word in w:
print(word)
但是当我运行它时,输出看起来像这样,字数太多了:
Samurai
Song
By
Robert
Pilinsky
我也尝试过使用while循环,以及各种for循环变体,我似乎无法弄明白。
答案 0 :(得分:1)
快速修复可能是:
for word in w[:3]:
print(word)
所以不是范围循环:
f = open("randomFile.txt",'r')
l = f.readline()
w = l.split()
printcount = 3
for word in w[:printcount]:
# prints 3 words - if .txt only has a single line
print(word)
您也可以要求用户定义printcount
变量。
# for python-3
printcount = input('How many words would you like to see?')
# for python-2
printcount = raw_input('How many words would you like to see?')
我建议您不要使用l
,f
和w
,而应使用变量名称lines
,file
和words
。另外要读取整个文件而不是逐行使用read()
而不是readline()
- 除非.txt
只包含一行(如@AChampion所提及):
file = open("randomFile.txt",'r')
lines = file.read()
words = lines.split()
最终代码:
file = open("randomFile.txt",'r')
lines = file.read()
words = lines.split()
printcount = input('How many words would you like to see?')
for word in w[:printcount]:
print(word)
答案 1 :(得分:0)
目前您正在循环3次,读取一行并打印该行的所有单词
您可以直接使用_.zipWith([10, 585, 563, 24, 4, 486, 123, 458],
['John', 'Jack', 'Ali', 'martin', 'ejy', 'Farid', 'Gordon', 'Peter'],
(y, label) => {label: label, y: y});
作为idx
的索引。
w
或者您可以对with open("randomFile.txt",'r') as f:
l = f.readline()
w = l.split()
for idx in range(3):
print(w[idx])
和zip()
range()