【发布时间】:2013-01-16 08:32:34
【问题描述】:
我遇到了关于在 Windows 上显示网络驱动器中的文件的问题。
path = "\\\\nexus\\File Server\\Technical\\MyDrive\\Software\\Releases\\%s\\%s\\" %(release, module)
其中\\nexus\ 是网络驱动器。
我的主要问题是用户输入了正确的变量,我无法显示所请求目录的内容(“模块”的内容)。
我尝试过的事情
-
os.listdir(path)
上面这行的问题是它返回了一个 Windows 错误 [123],即找不到目录错误。这是因为 listdir() 似乎将所有反斜杠加倍 结果:"\\\\\\\\nexus\\File Server\\\\Technical\\\\MyDrive\\\\Software\\\\Releases\\\\release\\\\module\\\\" -
print(glob.glob(path))
我真的不知道它是如何工作的:P 但它似乎只是显示提供的目录而不是结束目录的内容\\nexus\File Server\Technical\MyDrive\Software\Releases\release\module\"
我见过os.walk,但我不确定它是如何工作的,因为它如何定义基本目录/目录以及路径的其余部分是什么
补充说明:“模块”的内容将始终是一个 zip 文件,该目录通常最多包含五个 zip 文件。
【问题讨论】:
-
您应该删除所有的双斜杠。通过将
r放在它前面来使用原始字符串。所以它应该看起来像这样:r'\\nexus\File Server\Technical\MyDrive\Software\Releases\release\module\'这是第一件事。试试看。其次,在 Windows 上,您也可以使用正斜杠,例如:r'\\nexus/File Server/Technical/MyDrive/Software/Releases/release/module/',但您仍然需要双反斜杠作为网络资源。 -
试试这个:path = "//nexus/File Server/Technical/MyDrive/Software/Releases/%s/%s/" %(release, module)
-
@InbarRose:不使用尾随反斜杠,这将不起作用..
module\'转义关闭',即使在原始字符串文字中也是如此。 -
@MartijnPieters 是的,谢谢,现在是一大早,我还没有喝完咖啡:)
-
你能简单地将
\\nexus映射到Z:吗?类似问题:stackoverflow.com/questions/1459590/…
标签: python python-3.x