如何使用.txt文件第一行的数字来确定要打印的单词数?



我有这个:

from random_word import RandomWords
import time
h = open('/home/rodrigo/Documents/num.txt', 'r')
content = h.readline()
print (content)

a = 0
for line in content:
for i in line:
if i.isdigit() == True:
a += int(i)
r = RandomWords()
key = r.get_random_words()
time.sleep(3)
keys = key[:a]
time.sleep(1)
for key in keys:
print(key)

我正试图阅读和使用。txt文件第一行的数字。在。txt文件中,我刚刚输入了数字:

50

然而,这段代码只读取数字50的第一个数字,结果是函数print(key)只打印5个单词(它应该打印50个单词)。

如果我将。txt文件更改为数字:55print(key)打印10个单词,而不是55个单词。(函数是添加。txt文件的数字/数字单位)

有人能帮忙吗?如何打印的字数正好等于在.txt文件中键入的数字?

读取两个数字。但是它读到一个字符串"50"。然后迭代这些数字,将它们转换为ints并将它们相加,即int("5") + int("0")。这给了你5(显然)。

将整个循环替换为

a = int(content)

如果你想检查文件是否只有数字:

try:
a = int(content)
except ValueError:
print("The content is not intiger")

content是一个字符串,您在第一个for循环中遍历字符串中的字符(并且在嵌套的for循环中遍历单个字符串line一次)。

如果你只需要一行,用下面的代码替换你的第一个for循环就可以了:

if content.isdigit() == True:
a += int(content)

如果您需要多行并单独添加它们,则将每行添加到如下列表中:

from random_word import RandomWords
import time
h = open('/home/rodrigo/Documents/num.txt', 'r')
content = []
line = h.readline()
while line:
content.append(line)
line = h.readline()
print (content)

a = 0
for line in content:  # You only need one for loop.
if line.isdigit() == True:
a += int(i)
r = RandomWords()
key = r.get_random_words()
time.sleep(3)
keys = key[:a]
time.sleep(1)
for key in keys:
print(key)

最新更新