Как получить Путь в виде "file: ///// SERVER // folder1 / folder2 / - PullRequest
0 голосов
/ 27 февраля 2019

Я довольно плохо знаком с 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 выглядит так: «щелкните правой кнопкой мыши папку -> Path Copy -> file: //// ....».И я знаю только, что этот путь на моем компьютере называется «I: \ Folder1» .. но «I: \ Folder1» - это имя сервера

Редактировать 2: Решено (см. Комментарии)

1 Ответ

0 голосов
/ 27 февраля 2019

Если вы работаете на платформе 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...