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)
有人可以帮帮我吗?我试图搜索它,但我找不到我能用的东西.应该替换的文本可以有不同的长度.
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)
对于您正在做的事情,有一个非常简单的解决方案:
#!/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