我正在编写一个Python脚本,它接受文件路径作为字符串,解析它们,附加一个命令名称并构建一个列表,然后将其传递给
当我在Unix下运行时,如果我给出了一个包含转义字符的Windows路径(例如
据我所知,没有函数或方法可以将字符串变量表示为原始字符串。
到目前为止,我能够做到的最接近的是:
此时,winpathlist 应该包含
我可以添加额外的
有没有更符合 Python 风格的方法?
subprocess.Popen()
以进行执行。此脚本应处理Unix和Windows文件路径,并最终在两个系统上运行。当我在Unix下运行时,如果我给出了一个包含转义字符的Windows路径(例如
\Users\Administrator\bin
),Python将把嵌入的\b
解释为退格符。我想防止这种情况发生。据我所知,没有函数或方法可以将字符串变量表示为原始字符串。
'r'
修饰符仅适用于字符串常量。到目前为止,我能够做到的最接近的是:
winpath = "C:\Users\Administrator\bin"
winpath = winpath.replace('\b','\\b')
winpathlist = winpath.split('\\')
此时,winpathlist 应该包含
['C:','Users','Administrator','bin']
,而不是 ['C','Users','Administrator\x08in']
。我可以添加额外的
winpath.replace()
调用来处理其他可能出现的转义字符 -- \a
、\f
、\n
、\r
、\t
、\v
,但不能处理 \x
。有没有更符合 Python 风格的方法?
>>> myCommandObject.setExcecutablePath('C:\Program Files\cygwin\cdrive\bin')
其中myCommandObject包含命令名称(例如'ps'),路径和参数列表。将反斜杠改为正斜杠不是一个选项;我的客户明确表示这就是他想要的。 - poltr1