转义路径中的序列

时间:2013-02-21 06:15:45

标签: python

source = "C:\Program Files (x86)\xxx\yyy\Agent\node.default\blr-w2k8-252\data\somefile.iso"
print source

输出:

"C:\Program Files (x86)\xxx\yyy\Agent
 ode.defaulblr-w2k8-252\data\somefile.iso"

请注意,对于\n ode,我得到了一个新行,并且deaful t\ blr消失了

我做了source=source.replace('\\', '/')但得到了相同的输出,即使/n也导致新行。

我做了source=source.encode('string-escape')现在输出是别的

输出:

"C:\\Program Files (x86)\\xxx\\yyy\\Agent\node.default\x08lr-w2k8-252\\data\\somefile.iso"

只有原始字符串正在工作,即

source=r"C:\Program Files (x86)\xxx\yyy\Agent\node.default\blr-w2k8-252\data\somefile.iso"

但在我的程序中我只有字符串变量。如何使其工作或如何使字符串变量为原始?

2 个答案:

答案 0 :(得分:1)

在字符串文字之前指定“r”不会更改字符串的数据类型;它只会影响字符串文字的解释方式。因此,您的问题很可能是信息收集到字符串中的方式,而不是字符串收集后的存储方式。还要注意,当您在Python中打印字符串时,输出会自动包含转义字符(例如“output:”示例中的双斜线)。该字符串仅包含一个斜杠,即使两者都显示。

答案 1 :(得分:1)

了解escape sequences。在字符串前使用'r'告诉Python忽略转义序列并按字面意思取字符串。当您将源代码硬编码为某个值时,它与通过调用函数分配源的值不同。如果它不起作用,请检查您正在调用的函数如何创建该路径。