将数据附加到.txt文件

时间:2015-04-30 00:20:14

标签: python list random printing

我对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()

3 个答案:

答案 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()