说明:
这就是我所拥有的:
import random
afile = open("Random.txt", "w" )
for line in afile:
for i in range(input('How many random numbers?: ')):
line = random.randint(1, 100)
afile.write(line)
print(line)
afile.close()
print("\nReading the file now." )
afile = open("Random.txt", "r")
print(afile.read())
afile.close()
一些问题:
它不会根据用户设置的范围在文件中写入随机数。
一旦打开文件就无法关闭。
读取文件时没有。
虽然我认为设置没问题,但似乎总是卡在执行上。
答案 0 :(得分:5)
摆脱for line in afile:
,取出其中的内容。此外,因为input
在Python 3中返回一个字符串,所以首先将其转换为int
。当你必须写一个字符串时,你正试图写一个整数到文件。
这应该是这样的:
afile = open("Random.txt", "w" )
for i in range(int(input('How many random numbers?: '))):
line = str(random.randint(1, 100))
afile.write(line)
print(line)
afile.close()
如果您担心用户可能输入非整数,您可以使用try/except
块。
afile = open("Random.txt", "w" )
try:
for i in range(int(input('How many random numbers?: '))):
line = str(random.randint(1, 100))
afile.write(line)
print(line)
except ValueError:
# error handling
afile.close()
你试图做的是迭代afile
的行,当没有时,所以它实际上没有做任何事情。