我是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:已解决(请参见评论)
答案 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)