python和windows双反斜杠

时间:2013-03-22 16:52:59

标签: python

我在本地计算机上运行了一个使用某些文件的程序。我使用:os.path.join( tempfile.gettempdir(), 'filename.txt' )

创建对文件的引用

之后我运行了一个接受一些参数--log-file filepath的程序,其中filepath是我刚才解释过的文件之一。

在我的机器上,python为路径创建反斜杠但不会产生双反斜杠,程序会抱怨,因为它被认为是转义字符,应该是双反斜杠。

有没有任何标准方法可以确保我在python中获得带有双反斜杠的工作路径?我可以使用正则表达式,但我更喜欢类似os.提供的内容。也许我错过了什么。

我使用subprocess.Popen调用该程序:

self._proc = subprocess.Popen( command.split( ' ' ) )

其中command类似于pcix.exe --log-file file_path

此外,在我的控制台上运行测试表明我的python不会为路径生成双反斜杠:

>>> print os.path.join(tempfile.gettempdir(), "test.txt")
c:\users\manilo~1\appdata\local\temp\test.txt

退出print命令会产生相同的路径:

>>> os.path.join(tempfile.gettempdir(), "test.txt")
c:\users\manilo~1\appdata\local\temp\test.txt

知道为什么吗?

P.S。我正在运行的平台是CPython

1 个答案:

答案 0 :(得分:-1)

尝试:

print os.path.join(tempfile.gettempdir(), "test.txt").replace('\\\\','\\\\\\\\')