替换txt文件中的整行

use*_*935 5 python text replace python-3.x

我是Python 3的新手,可以真正使用一些帮助.我有一个包含以下内容的txt文件:

InstallPrompt=

DisplayLicense=

FinishMessage=

TargetName=D:\somewhere

FriendlyName=something
Run Code Online (Sandbox Code Playgroud)

我有一个python脚本,最后应该只改变两行:

TargetName=D:\new

FriendlyName=Big
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?我试图搜索它,但我找不到我能用的东西.应该替换的文本可以有不同的长度.

gho*_*g74 5

import fileinput
for line in fileinput.FileInput("file",inplace=1):
    sline=line.strip().split("=")
    if sline[0].startswith("TargetName"):
        sline[1]="new.txt"
    elif sline[0].startswith("FriendlyName"):
        sline[1]="big"
    line='='.join(sline)    
    print(line)
Run Code Online (Sandbox Code Playgroud)


Dan*_*ory 2

对于您正在做的事情,有一个非常简单的解决方案:

#!/usr/bin/python
import re
import sys
for line in open(sys.argv[1],'r').readlines():
  line = re.sub(r'TargetName=.+',r'TargetName=D:\\new', line)
  line = re.sub(r'FriendlyName=.+',r'FriendlyName=big', line)
  print line,
Run Code Online (Sandbox Code Playgroud)

您可以从命令行调用它:./test.py myfile.txt > output.txt

  • `open(sys.argv[1],'r').readlines()` 可以替换为 `open(sys.argv[1])`。 (3认同)
  • print是Python3中的一个函数 (2认同)