如何打印任意数量的分词?

时间:2017-04-28 14:17:01

标签: python loops

我正在尝试在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循环变体,我似乎无法弄明白。

2 个答案:

答案 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?')

我建议您不要使用lfw,而应使用变量名称linesfilewords。另外要读取整个文件而不是逐行使用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()