Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在表单中获取路径;file://///SERVER//folder1/folder2/_Python_Server_Path - Fatal编程技术网

Python 如何在表单中获取路径;file://///SERVER//folder1/folder2/

Python 如何在表单中获取路径;file://///SERVER//folder1/folder2/,python,server,path,Python,Server,Path,我对python相当陌生,我有以下问题(只是一个示例): 以以下形式返回路径: I:\Folder1\Folder2 这对我来说正常 然而,“I:\”是我们工作中的一个服务器,为了进一步处理(html内容),我需要这种形式的确切地址 file://///Servername/Subfolder/Folder1/Folder2 编辑:换句话说: 我的程序可以在本地使用,也可以在不同的服务器上使用——这取决于用户。相当愚蠢地说,我需要一个返回win10中的内容的函数,如下所示:“右键单击文件夹-->

我对python相当陌生,我有以下问题(只是一个示例):

以以下形式返回路径:

I:\Folder1\Folder2

这对我来说正常

然而,“I:\”是我们工作中的一个服务器,为了进一步处理(html内容),我需要这种形式的确切地址

file://///Servername/Subfolder/Folder1/Folder2

编辑:换句话说:

我的程序可以在本地使用,也可以在不同的服务器上使用——这取决于用户。相当愚蠢地说,我需要一个返回win10中的内容的函数,如下所示:“右键单击文件夹-->路径副本-->file:////....". 我只知道我计算机上的路径名为“I:\Folder1”。但“I:\Folder1”是服务器名


编辑2:已解决(请参阅注释)

如果您在Windows平台上,需要正斜杠,则实际上可以导入特定于操作系统的版本。例如,您可以使用

要解决您的问题,您需要首先从每个返回的
dirpath
中去掉
mypath
。接下来,使用操作系统的分隔符(即
\
)将其拆分为文件夹组件。然后,可以使用
posixpath.join()
命令,使用
server
前缀重新连接所有这些内容。例如:

import posixpath
import os

mypath = r'I:\Folder1'
server = 'file://///Servername/Subfolder'

for dirpath,_,filenames in os.walk(mypath):
    for f in filenames:
        subfolder = dirpath[len(mypath):]
        server_path = posixpath.join(server, *subfolder.split(os.sep), f)
        print(server_path)

谢谢你的回答。也许我没有完美地描述它。如果我知道服务器名称,那么您的解决方案就可以工作——因此作为一种解决方法,我或多或少都是这样做的。然而,我的程序可能在本地使用,也可能在不同的服务器上使用——这取决于用户。(这是关于从文件中提取图像的)因此您也在寻找一种从'I:\`获取服务器名的方法?请查看
win32wnet.WNetGetUniversalName(r'I:\',1)
。您需要
导入win32wnet
import posixpath
import os

mypath = r'I:\Folder1'
server = 'file://///Servername/Subfolder'

for dirpath,_,filenames in os.walk(mypath):
    for f in filenames:
        subfolder = dirpath[len(mypath):]
        server_path = posixpath.join(server, *subfolder.split(os.sep), f)
        print(server_path)