我有这个:
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"
。然后迭代这些数字,将它们转换为int
s并将它们相加,即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)