我正在使用Python脚本来查找和替换给定目录的文本文件中的某些字符串.我正在使用该fileinput
模块来简化查找和替换操作,即读取文件,替换文本并将其写回同一文件.
代码如下:
import fileinput def fixFile(fileName): # Open file for in-place replace for line in fileinput.FileInput(fileName, inplace=1): line = line.replace("findStr", "replaceStr") print line # Put back line into file
问题是书面文件有:
每行后插入一个空行.
每行末尾的Ctrl-M字符.
如何防止这些额外的附属物插入文件?
您的换行符来自打印功能
使用:
import sys sys.stdout.write ('some stuff')
你的换行会消失
使用
print line,
要么
file.write(line)
修复额外的换行符.
从[Ctrl] - [M]开始 - 这可能是由DOS编码中的输入文件引起的.
而不是这个:
print line # Put back line into file
用这个:
print line, # Put back line into file
将for循环中的第一行更改为:
line = line.rstrip().replace("findStr", "replaceStr")