python - 在 Python 2.7 中打印带反斜杠的字符串

标签 python string python-2.7 escaping

我正在获取传入的字符串,并希望以原始格式打印缓冲区(按原样打印双反斜杠) 如何告诉 string.format() 这是一个“原始”字符串并且不使用反斜杠字符?

>>> machines=['\\JIM-PC', '\\SUE-PC', '\\ANN-PC']
>>> for machine in machines:
...     print 'Machine Found %s' % (machine)
...
Machine Found \JIM-PC
Machine Found \SUE-PC
Machine Found \ANN-PC

最佳答案

最简单的方法就是加倍斜杠,因为“\\”被视为单个斜杠字符。

machines=['\\\\JIM-PC','\\\\SUE-PC','\\\\ANN-PC']
for machine in machines:
    print 'Machine Found %s' % (machine)

您还可以使用 str.encode('string-escape') 方法:

machines=['\\JIM-PC','\\SUE-PC','\\ANN-PC']
for machine in machines:
    print 'Machine Found %s' % (machine.encode('string-escape'))

或者,如果您希望编码坚持变量以供以后使用,您也可以分配该值。

machines=['\\JIM-PC','\\SUE-PC','\\ANN-PC']
for machine in machines:
    machine = machine.encode('string-escape')
    print 'Machine Found %s' % (machine)

我在这里找到了 str.encode('string-escape') 方法:casting raw strings python

希望这有帮助。

编辑

Re Chris:print(repr(machine)) 也可以工作,只要你不介意它包含引号即可。

关于python - 在 Python 2.7 中打印带反斜杠的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42301035/

相关文章:

string - 如何从 Rust 中的另一个字符串中删除单个尾随字符串?

python - 传入字符串作为参数而不将其视为原始字符串

python - 如果数字之间没有出现句点 [.] 和逗号 [,],则从字符串中删除它们

python - 如何使用 pyqt4 将不同的背景颜色应用于树小部件中父文本的每一行

python - 使用相关模型的自定义管理器的 Django 过滤器相关字段

python - 从 python pandas 中抑制 Name dtype describe

python - 计算 `groupby` 中字符串和 `pandas` 分类变量的出现次数

python - 在 Python 3.5 中安装 Pyproj 时出错

java - 类参数缺少最后的引号

c++ - C++ 字符串的迭代器问题