[英]Appending data to .txt file
我是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()
关于追加或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()
如果您通读open()的文档,则会注意到:
模式“ r +”,“ w +”和“ a +”打开文件进行更新(读取和写入); 请注意,“ w +”会截断文件。 在区分二进制文件和文本文件的系统上,将“ b”追加到以二进制模式打开文件的模式; 在没有此区别的系统上,添加“ b”无效。
因此,如果要“附加到打开的文件,请使用模式a
。
例:
f = open("random.txt", "a")
f.write(...)
更新:如果要将条目与后续程序运行分开,则必须在程序可以理解的文件后添加一行。 例如: f.write("!!!MARKER!!!\\n")
完全一样,让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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.