我想创建一个文本文件并逐行添加数据。如果文件中已经存在数据行,则应将其忽略。否则,它应该附加到文件中。
问问题
820 次
3 回答
2
几乎可以肯定,您最好阅读文件并编写新的更改版本。在大多数情况下,它会更快、更容易、更不容易出错并且更易于扩展。
于 2012-01-19T06:12:48.100 回答
1
如果您的文件不是那么大,您可以执行以下操作:
added = set()
def add_line(line):
if line not in added:
f = open('myfile.txt', 'a')
f.write(line + '\n')
added.add(line)
f.close()
但是,如果您必须担心并发性、存储在文件中的大量数据,或者基本上不是快速一次性的东西,这不是一个好主意。
于 2012-01-19T19:49:39.293 回答
0
我是这样做的,
def retrieveFileData():
"""Retrieve Location/Upstream data from files"""
lines = set()
for line in open(LOCATION_FILE):
lines.add(line.strip())
return lines
def add_line(line):
"""Add new entry to file"""
f = open(LOCATION_FILE, 'a')
lines = retrieveFileData()
print lines
if line not in lines:
f.write(line + '\n')
lines.add(line)
f.close()
else:
print "entry already exists"
if __name__ == "__main__":
while True:
line = raw_input("Enter line manually: ")
add_line(line)
if line == 'quit':
break
于 2012-02-16T06:20:53.890 回答