我试图替换文本文件中特定行的值。
我的文本文件包含searchterm,searchterm&的计数。日期和时间
文字档案:
MemTotal,5,2016-07-30 12:02:33,781
model name,3,2016-07-30 13:37:59,074
model,3,2016-07-30 15:39:59,075
如何替换第2行(model name,3,2016-07-30 13:37:59,074
)的searchterm计数?
这就是我已经拥有的:
f = open('file.log','r')
filedata = f.read()
f.close()
newdata = filedata.replace("2", "3")
f = open('file.log', 'w')
f.write(newdata)
f.close()
它会替换所有值2
。
答案 0 :(得分:0)
您必须在代码中更改三件事才能完成工作:
使用readlines
阅读文件。
filedata = f.readlines()
修改要更改的行(请记住,Python索引从0开始,不要忘记在字符串末尾添加换行符\n
):
filedata[1] = 'new count,new search term,new date and time\n'
使用for循环保存文件:
for line in filedata:
f.write(line)
以下是完整代码(通知我使用with
上下文管理器来打开/关闭文件):
with open('file.log', 'r') as f:
filedata = f.readlines()
filedata[1] = 'new count,new search term,new date and time\n'
with open('file.log', 'w') as f:
for line in filedata:
f.write(line)
答案 1 :(得分:0)
我的解决方案:
count = 0
line_number = 0
replace = ""
f = open('examen.log','r')
term = "MemTotal"
for line in f.read().split('\n'):
if term in line:
replace= line.replace("5", "25", 1)
line_number = count
count = count + 1
print line_number
f.close()
f = open('examen.log','r')
filedata = f.readlines()
f.close()
filedata[line_number]=replace+'\n'
print filedata[line_number]
print filedata
f = open('examen.log','w')
for line in filedata:
f.write(line)
f.close()
您只需要定义searchterm&替换值