在我试图替换的文本文件中,我正在尝试删除额外的换行符,即。转换
test="
123"
到
test="123"
我目前拥有的是:
f = open("file.txt")
o = open("newfile.txt","w")
while 1:
line = f.readline()
if not line: break
line = line.replace('test="\r','test="')
o.write(line)
o.close()
问题是它返回
test="123"
<“>和< 123>之间有一个隐形字符。是否有一些比我正在做的更好的替代方案?我对python不是很熟练;谢谢!
答案 0 :(得分:3)
您的代码存在一些缺陷:
\r
,而忽略了Windows上的\n
- 我认为这是你的“隐形”角色(windows使用\r\n
作为文本文件中的换行符,linux {{1} }和Mac \n
)这是另一个版本(可能接近你想要的那个;)):
\r
答案 1 :(得分:0)
执行此操作的最佳方式(在我看来)是启用Universal Newline Support。这将使您的代码适用于在任何操作系统(Windows,Mac或Linux)上制作的文件。
要执行此操作,请在读取和写入文件时添加“U”规范。在您的示例中:
with open("file.txt", "rU") as f:
with open("newfile.txt","w") as o:
for line in f.readlines():
o.write(line.replace("\n", ""))
这要求Python是使用Universal Newline Support构建的,这是默认的。