如何以“ file:///// SERVER // folder1 / folder2 /

时间:2019-02-27 09:54:10

标签: python server path

我是python的新手,我遇到以下问题(仅作为示例):

 import os
 mypath = 'I:\Folder1'
 for dirpath,_,filenames in os.walk(mypath):
        for f in filenames:
            getpath = os.path.abspath(os.path.join(dirpath, f))

以以下形式返回路径:

  

I:\ Folder1 \ Folder2

我通常没事

但是“ I:\”是我们工作中的服务器之一,为了进行进一步处理(html内容),我需要采用这种格式的确切地址

  

文件://////服务器名称/子文件夹/文件夹1 /文件夹2

编辑:换句话说:

我的程序可以在本地使用,也可以在其他服务器上使用-它仅取决于用户。相反,愚蠢地说我需要一个函数来返回win10中的内容:“右键单击文件夹->路径复制-> file://// ....”。而且我只知道我计算机上的该路径称为“ I:\ Folder1” ..但是“ I:\ Folder1”是服务器名称

编辑2:已解决(请参见评论)

1 个答案:

答案 0 :(得分:0)

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

要解决您的问题,您需要先从每次退货mypath中剥离dirpath。接下来,使用操作系统的分隔符(即\)将其拆分为文件夹组件。然后,可以使用server命令用posixpath.join()前缀将其全部重新加入。例如:

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)