我对python很新。我想创建一个可以生成随机数并将它们写入文件的程序,但我很好奇是否可以将输出写入.txt
文件,但是在单个列表中。 (每次程序执行脚本时,它都会创建一个新列表)
到目前为止,这是我的代码:
def main():
import random
data = open("Random.txt", "w" )
for i in range(int(input('How many random numbers?: '))):
line = str(random.randint(1, 1000))
data.write(line + '\n')
print(line)
data.close()
print('data has been written')
main()
答案 0 :(得分:1)
ABout追加或a
-
打开要追加的文件。文件指针位于文件的末尾 如果文件存在。也就是说,文件处于追加模式。如果 文件不存在,它会创建一个新文件进行编写。
def main():
import random
data = open("Random.txt", "a" ) #open file in append mode
data.write('New run\n') #separator in file
for i in range(int(input('How many random numbers?: '))):
line = str(random.randint(1, 1000))
data.write(line + '\n')
print(line)
data.close()
print('data has been written')
main()
答案 1 :(得分:0)
如果您仔细阅读了open()的文档,请注意:
模式'r +','w +'和'a +'打开文件进行更新(阅读和 写作);请注意'w +'会截断文件。将'b'附加到模式为 在二进制模式下打开文件,在区分它们的系统上 二进制和文本文件;在没有这种区别的系统上, 添加'b'没有效果。
如果你想“附加到打开的文件中,请使用模式a
。
示例:强>
f = open("random.txt", "a")
f.write(...)
更新:如果要将条目与后续程序运行分开,则必须在程序理解的文件后附加一行。例如:f.write("!!!MARKER!!!\n")
答案 2 :(得分:0)
与letsc
答案完全相同,但格式化为更多" pythonic"
Python 3示例,与OP语法中的print()一样。
import random
def main():
with open("Random.txt", "a") as data:
print('New run', file=data)
numbers_count = int(input('How many random numbers?: '))
for i in range(numbers_count):
line = str(random.randint(1, 1000))
print(line, file=data)
print(line)
print('data has been written')
if __name__ == "__main__":
main()