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

How to use a number in the first line of a .txt file to determine the number of words to be printed?

我有这个:

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 文件更改为数字:55 print(key) 打印 10 个单词而不是 55 个单词。 (功能是添加.txt文件的digits/numeric个单位)

有人可以帮忙吗?如何打印与 .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 循环中遍历字符串中的字符(并使用嵌套 [=] 遍历单个字符串 line 一次13=]循环)。

如果你只需要一行,用这个替换你的第一个 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)