python - 如何以“file://///SERVER//folder1/folder2/”的形式获取路径
问题描述
我对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))
以以下形式返回路径:
我:\文件夹1\文件夹2
这对我来说通常没问题
但是“I:\”是我们工作中的服务器之一,为了进一步处理(html 内容),我需要这种形式的确切地址
file://///服务器名/子文件夹/文件夹1/文件夹2
编辑:换句话说:
我的程序可以在本地使用,也可以在不同的服务器上使用——这取决于用户。相当愚蠢地说我需要一个函数来返回win10中的内容,如下所示:“右键单击文件夹->路径复制->文件:////....”。而且我只知道我电脑上的这条路径叫做“I:\Folder1”..但是“I:\Folder1”是服务器名
编辑2:解决(见评论)
解决方案
如果您在 Windows 平台上并且需要正斜杠,实际上可以导入操作系统特定版本。例如,您可以使用posixpath
.
要解决您的问题,您需要首先mypath
从每个 return中剥离dirpath
。接下来使用 split 与操作系统的分隔符将其拆分为文件夹组件,即\
. 然后可以使用该命令将其全部重新加入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)
推荐阅读
- angular - Angular 返回预检 CORS 错误,其他工具没有错误
- c++ - C ++:对同一对象的两次单独的“make_shared”调用将创建两个单独且独立的shared_ptr及其控制块?
- python - NameError: 'exit' 未在 cx_Freeze python 中定义
- python - 在 Keras 中进行预测后无法创建混淆矩阵 - 无法处理多标签指示符的混合
- node.js - 如何更新猫鼬列表中的对象(在NodeJS中)
- java - 如何始终从 MySQL 表中选择特定行并通过改造显示在 android TextView 上
- android - 我在导入 androidx.cardview.R 时出错;我该如何解决
- python - 自定义 Matplotlib 颜色图
- arrays - 使用 C 的直接 I/O:数组与指针
- c - x86-64 零标志在内联调用之间清除(和另一个问题)