Как получить нормальную ссылку, если путь получен из переменной или из списка? Python

Есть код:

import docx
import os

d = os.path.abspath('E:\Mr.Ip\Desktop\Учеба\Урок\Folder\1 от 09.01.2020\01 needed file.docx')

print(d)

>>> E:\Mr.Ip\Desktop\Учеба\Урок\Folder от 09.01.2020 needed file.docx

Добавляем r перед путем:

import docx
import os

d = os.path.abspath(r'E:\Mr.Ip\Desktop\Учеба\Урок\Folder\1 от 09.01.2020\01 needed file.docx')

print(d)

>>>E:\Mr.Ip\Desktop\Учеба\Урок\Folder\1 от 09.01.2020\01 needed file.docx

Получаем нормальную ссылку на файл.

Вопрос: как получить нормальную ссылку, если путь получен из переменной или из списка?

import docx
import os

t = 'E:\Profile\Desktop\Учеба\Урок\Folder\1 от 09.01.2020\01 needed file.docx'

d = os.path.abspath(t)

print(d)

>>> E:\Profile\Desktop\Учеба\Урок\Folder от 09.01.2020 needed file.docx

Получаем непонятные символы после Folder вместо "\"

Полный код выглядит так:

import xlsxwriter
import os
import fnmatch

directory_transit = []
file_names = []
pattern = '*needed*.docx'
path = r'.'

for root, dirs, files in os.walk(path):
    directory_transit.append(dirs)
    file_names += (fnmatch.filter(files, pattern))

print(file_names)
directory = directory_transit[1]
directory.sort()
print(directory)

Получаем 2 списка. В 1 название needed файла, во 2 папка в которой он лежит.

>>>['1 needed.docx', '01 Neededed.docx', '01 Needed file for examlpe.docx']
['1 от 09.01.2020', '6 от 14.02.2020', '8 от 14.02.2020']

Но при проверке, например os.path.isfile(file_names[0]), выдает false, так же с папками. Что не так не пойму (


Ответы (1 шт):

Автор решения: Эникейщик

Собирайте полный путь функцией os.path.join(), тогда всё будет правильно и не придется ломать голову.

 

при проверке, например os.path.file(file_names[0]), выдает false, так же с папками.

Потому что это не полный путь, а путь в текущей папке, а в папке, в которой выполняется скрипт (обычно это типа папка, где скрипт лежит), где в таком случае выполняется поиск, такого файла нет.

→ Ссылка