使用Python替换文本文件中的字符串会添加奇怪的字符

Dev*_*Con 1 python text

我想用Python在文本文件的每一行中用一个路径替换文本,但是我在输出文件的路径中得到了奇怪的字符(正方形).

当前代码:

#!/usr/bin/env python

f1 = open('input.txt', 'r')
f2 = open('output.txt', 'w')
for line in f1:
    f2.write(line.replace('test/software', 'C:\Software\api\render\3bit\sim>'))
f1.close()
f2.close()
Run Code Online (Sandbox Code Playgroud)

在输出文本中,路径中的以下内容将替换为正方形(奇怪的字符):

  • \ a =改为正方形
  • \ r =改为正方形
  • \ 3 =改为正方形

我的代码是否有问题,或者上面的字母是否为系统保留?

Mar*_*ers 5

Python字符串支持转义码; 带有某些字符的反斜杠被它们代表的代码替换.\r被解释为ASCII换行符,例如,\a是ASCII BELL,并被\3解释为ascii代码点3(在八进制编号中).请参阅Python 字符串文字文档.

要禁用正在解释的转义码,请使用原始python字符串,方法是在字符串定义前加上r:

r'C:\Software\api\render\3bit\sim>'
Run Code Online (Sandbox Code Playgroud)

所以你的行写道:

f2.write(line.replace('test/software', r'C:\Software\api\render\3bit\sim>'))
Run Code Online (Sandbox Code Playgroud)

或者,将反斜杠加倍,将它们解释为文字反斜杠:

'C:\\Software\\api\\render\\3bit\\sim>'
Run Code Online (Sandbox Code Playgroud)