[英]Add an extra \ in python winpaths
在Windows上使用python时,我试图让我的程序查看Dropbox.exe
存在(如果没有的话),那么程序将运行。 我将打印应用程序数据用作调试功能,它的打印内容是: C:\\Users\\Me\\AppData\\Roaming
,我认为问题在于它需要打印C:\\\\Users\\\\me\\\\AppData\\\\Roaming\\\\
,然后我可以将最后一部分添加为\\\\Dropbox\\\\bin\\\\Dropbox.exe
import winpaths
appdata = winpaths.get_appdata()
print appdata
try:
with open('appdata\Dropbox\bin\Dropbox.exe') as f: pass
except IOError as e:
print 'dropbox cant be found'
首先,您应该对路径使用正斜杠,因为反斜杠用于转义特殊字符,并且即使在Windows下,正斜杠也可以正常工作。 或者,使用原始字符串( r"C:\\some\\path"
)。 有关为什么要执行此操作的示例:
>>> print("\path\to\random")
andom o
>>> print("/path/to/random")
/path/to/random
>>> print(r"\path\to\random")
\path\to\random
要执行所需的操作,请查看os.path.join()以将两个部分结合起来:
>>> import os
>>> os.path.join("/path/to", "some/file")
'/path/to/some/file'
请注意,我使用的是Linux,因此会生成linux样式的路径,但是,在Windows下,它将进行相应的调整。
因此,在您的情况下:
with open(os.path.join(appdata, 'Dropbox/bin/Dropbox.exe')) as f:
...
由于反斜杠转义字符串中的字符,您可能会遇到错误。 使用原始字符串来防止这种情况:
with open(r'appdata\Dropbox\bin\Dropbox.exe') as f:
另外,要向路径名添加额外的位,请查看os.path
模块,尤其是os.path.join
。
您似乎没有在打开时使用appdata变量:
with open(appdata + r'\Dropbox\bin\Dropbox.exe') as f: pa
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.