>我创建了代码来检查以字符串开头的行是否存在,如果存在,则更新,如果不存在,则添加它。它可以工作,但我认为它可能有另一种方式,而不是打开文件并关闭它三次!
我的文字是(尝试(
LINE1, 1111111
LINE2, 2222222
LINE4, 4444444
LINE3, 4444444
和我尝试的代码:
linename = 'LINE3' # Variable
num = 3333333 # Variable
f = open('try', "r")
lines = f.readlines()
f.close()
f = open('try', "w")
for line in lines:
if not line.startswith(str(linename)):
f.write(line)
f.close()
f = open('try', 'a+')
for line in f:
if line.startswith(str(linename)):
break
else:
f.write("{0}, {1} n" .format(linename, num))
f.close()
这个怎么样:
linename = 'LINE3'
num = 3333333
with open('try', 'r', encoding='utf8') as f:
lines = f.readlines()
found = False
for i, line in enumerate(lines):
if line.startswith(linename):
lines[i] = "{0}, {1}".format(linename, num)
found = True
break
if not found:
lines.append("{0}, {1}".format(linename, num)
with open('try', 'w', encoding='utf8') as f:
f.writelines(lines)
下一个合乎逻辑的步骤是用它创建一个函数:
def store_in_file(filename, linename, num):
# ... the above ...
store_in_file('try', 'LINE3', 3333333)