我正在编写一个 Python 脚本,它接受文件路径作为字符串,解析它们,附加命令名,并构建一个列表,然后将其传递给subprocess.Popen()
执行。该脚本用于处理 Unix 和 Windows 文件路径,最终应该在两个系统上运行。
当我在 Unix 下运行它时,如果我给出一个无意中包含转义字符(例如\Users\Administrator\bin
)的 Windows 路径,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
。
有没有更蟒蛇的方式来做到这一点?