使用Python替换基于搜索的文本文件中的整行

时间:2016-04-13 12:41:20

标签: python python-3.x python-3.5

我正在尝试在文本文件中替换将以path ='/ users / username / folder'形式的字符串。我正在读取该文本文件并搜索从'path ='开始的行。我有两个问题,

  1. 我无法使用以下代码替换该行
  2. 如果该字符串从中间开始,则此代码可能无效,因为我正在检查line.startswith()。
  3. 请帮忙。

    f = open('/Volumes/Personal/example.text','r+')
    
    for line in f:
        print(line, end='')
        if (line.startswith("path = ")):
            # You need to include a newline if you're replacing the whole line
            line = CurrentFilePath + "\n" 
            f.write(line)
            print ("Success!!!!")
    

1 个答案:

答案 0 :(得分:2)

您可以使用正则表达式。

import re
with open("filename","r+") as f:
    text = f.read()
    modified_text, modified = re.subn(r'(?:^|(?<=\n))path\s\=.*',CurrentFilePath, text)
    if  modified:
        print ("Success!!!!")
    else:
        print ("Failure :(")
    f.seek(0)  
    f.write(modified_text)  
    f.truncate()