Python和终端 - 带有特殊字符的字符串

时间:2012-11-25 18:54:03

标签: python

我知道Python的事情,如果我使用交互式解释器并且我写'\\ '它会打印'\\ '但是如果我写print '\\ '它会打印'\ '。< / p>

我要做的是(在名为p.py的脚本中):

import os
os.system('echo ' + 'string with spaces'.replace(' ', '\ '))
显然它不会让我这样做。我的意思是,Python设法添加两个反斜杠而不是一个,但我认为它只在交互模式下才这样做,但终端在通过像\这样的特殊字符时会忽略它们。

因此,作为原始代码的输出,我得到:

local:$ string with spaces

而不是

local:$ string\ with\ spaces 

我已经在Python中尝试过硬编码字符串和其他所有内容,但我想问题是shell字符串。

我怎么解决这个问题?

它可以帮助找到替代解决方案,我正在尝试做的是使用mv命令从python移动文件,并且此文件的名称中包含空格。

1 个答案:

答案 0 :(得分:2)

os.system('echo ' + 'string with spaces'.replace(' ', '\ '))

在该行中,最后一个字符串'\ '将尝试转义空格,即使这不是转义序列。如果您希望它成为具有前置退格的空格,您可以转义退格('\\ '),也可以使用原始字符串来忽略所有转义序列(r'\ ')。