2013-11-24 121 views
0

背景:打印或写入文件 “ 040”(空格)

我需要使用Python

//10.1.1.1//First\040Second /Mount cifs ------ 

问题到下面的行写入fstab文件:

但这First Second从输入到来,当我试图把它转换成First\040Second它打印相同First Second

问:

我怎么能转换成First SecondFirst\040Second,只需更换" "\040

注:即使当我尝试打印First\040Second,它显示为唯一First Second

print "First Second".replace(" ", "\040") 

在此先感谢,如果您需要更多的说明,我可以提供。

+0

你确定这是你想要什么做? '\ 0'意味着什么。 –

+0

是的,它正在工作(我的意思是正确安装桑巴驱动器)。但是我对'\ 0'没有一个好主意。 – user3027118

回答

3

变化

print "First Second".replace(" ", "\040") 

print "First Second".replace(" ", "\\040") 

\\是打印一个反斜杠

http://en.wikipedia.org/wiki/Null_character

编辑的正确方法:Starrify恍然大悟我基本上说,\ XXX或\ 040被视为十六烷mal

+0

“\ 0是空字符”是否有与'\ 0'有关的任何内容? – starrify

+0

@ starrify,我几乎不知道python是如何工作的。这对我来说太复杂了。我所知道的是\ 0是一个经典的方式来结束一个字符串从c – user1462442

+1

@ user1462442那么我的观点是,'\ 0'与这种情况无关。当OP写入''\ 040''时,它是一个单字符,它的基数为8,其ASCII值为40,而不是一个字符''\ 0''和两个字符''40''。同样,基数16也有类似''\ xAB'这样的转义,其中AB是一个十六进制数。这个转义规则被用于C和Python。 – starrify

0

首先,在Python中," " == "\040"始终是True,因为后者只是表示字符串中字符的另一种形式。

据我了解您想要打印视觉转义字符,那么请使用"First Second".replace(" ", "\\040"),其中"\\040"可以通过r"\040"也更换为“R”在这里是指在Python raw string literals

+0

感谢您的解释,它的工作原理 – user3027118

0

通过添加转义序列的\\040First\\040Second

0

您可以r前缀字符串来表示,这是一个原始字符串:

>>> s = r'First\040Secon' 
>>> print s 
First\040Secon 
>>> s 
'First\\040Secon'