我正在尝试创建一个程序,该程序将获取用户输入的内容并将其放入Python 2.7中的文本文档中。我有一个问题,当再次运行程序时,文本文档被覆盖,以前的数据被删除。所以我想知道如何避免这个问题。如果已经回答,请链接文章。提前谢谢!
import time
import sys as LOL
print 'Welcome to the database, enter -1 to exit.'
time.sleep(1)
files = open('c:/writing.txt','w')
name = raw_input('Enter in your name... ')
if name == '-1':
LOL.exit()
time.sleep(1)
if len(name)> 64 or len(name)< 1:
print 'Please enter a name that is between 1 and 64 characters!!'
while len(name)>64 or len(name)<1:
name = raw_input('Enter in your name... ')
if name == '-1':
LOL.exit()
if len(name)> 64 or len(name)<1:
print 'Please enter a name that is between 1 and 64 characters!!'
time.sleep(1)
time.sleep(1)
age = int(raw_input('Enter in your age... '))
if age == -1:
LOL.exit()
while age > 125 or age < 1:
age = int(raw_input('Enter in your age... '))
if name == '-1':
LOL.exit()
time.sleep(1)
if age > 125 or age < 1:
print 'Enter in a vaild age!'
newedit = name + ' is %s years old.' %age
files.write(newedit)
files.close()
答案 0 :(得分:6)
这是因为您以w
模式(写入模式)打开了文件。正如您在docs中所读到的那样,这样做会自动截断它:
最常用的模式值是
'r'
用于阅读,'w'
用于 写(截断文件,如果它已经存在),并'a'
为 追加(在某些Unix系统上意味着所有写入附加到 文件的结尾,无论当前的搜索位置如何。)
如上面的摘录所示,您应该使用a
模式将文本附加到文件而不会截断:
files = open('c:/writing.txt','a')
答案 1 :(得分:4)
追加&#39; a&#39;而不是写&#39; w&#39;模式应该可以这样做,所以你使用该行
f = open("text.txt", 'a')
。