这是我写的代码:
import os
import string
import random
def id_generator(size=8, chars=string.digits):
return ''.join(random.choice(chars) for _ in range(size))
b="echo " + id_generator() + "> file.txt"
os.system(100*b)
现在的问题是,当我运行脚本时,它会返回一个不是100的随机数。 我希望当我打开 file.txt 时,它必须像:
123456
241721
126428
我该如何解决这个问题?
答案 0 :(得分:5)
重定向会覆盖文件的先前内容。您想要>>
,而不是>
。
顺便说一下,没有必要在这里使用过时的os.system()
和重定向。你可以这样做:
with open('file.txt', 'w') as f:
for _ in range(100):
f.write(id_generator() + '\n')
这也是更加跨平台的。
答案 1 :(得分:0)
要获得100个随机数,你应该调用id_generator()函数100次,但你要做的是将已经生成的字符串连接100次。
试试这个:
import string
import random
def id_generator(size=8, chars=string.digits):
return ''.join(random.choice(chars) for _ in xrange(size))
random_numbers_string = '\n'.join(id_generator() for _ in xrange(100))
with open('file.txt', 'w') as f:
f.write(random_numbers_string)