2016-07-31 114 views
-2

我試圖替換文本文件中特定行中的值。Python替換文本文件中的值

我的文本文件包含了搜索關鍵詞的數量,搜索關鍵詞&日期和時間

文本文件:

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)的計數?

這是我已經:

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

+2

這是不是免費的寫作服務。請顯示您的努力和您目前的代碼。 – Julien

+0

替代規則是什麼? – Zety

回答

0

你必須改變你的代碼三件事完成工作:

  1. 閱讀使用readlines文件。

    filedata = f.readlines() 
    
  2. 修改要改變(記住,Python的索引從0開始,不要忘記在字符串末尾添加一個換行符\n)行:

    filedata[1] = 'new count,new search term,new date and time\n' 
    
  3. for line in filedata: 
        f.write(line) 
    

以下是完整的:

  • 使用for循環保存文件代碼(請注意,我用的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) 
    
  • +0

    好的感謝您的代碼 –

    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() 
    

    你只需要定義搜索關鍵詞&替換值