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"
但在我的程序中我只有字符串变量。如何使其工作或如何使字符串变量为原始?
答案 0 :(得分:1)
在字符串文字之前指定“r”不会更改字符串的数据类型;它只会影响字符串文字的解释方式。因此,您的问题很可能是信息收集到字符串中的方式,而不是字符串收集后的存储方式。还要注意,当您在Python中打印字符串时,输出会自动包含转义字符(例如“output:”示例中的双斜线)。该字符串仅包含一个斜杠,即使两者都显示。
答案 1 :(得分:1)
了解escape sequences。在字符串前使用'r'告诉Python忽略转义序列并按字面意思取字符串。当您将源代码硬编码为某个值时,它与通过调用函数分配源的值不同。如果它不起作用,请检查您正在调用的函数如何创建该路径。