繁体   English   中英

在python winpaths中添加一个额外的\\

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM