Python хранит имена путей с прямой и обратной косой чертой

У меня есть процедура, которая os.walkКаталог и его подкаталоги для фильтрации PDF-файлов, разделяя их имена и соответствующие им пути. У меня проблема в том, что он будет сканировать самый верхний каталог и напечатать соответствующее имя файла, например G:/Books/Title.Pdf но второй он сканирует подпапку, например, G:/Books/Sub Folder/Title.pdf будет напечатано следующее

G:/Books/Sub Folder\\Title.Pdf

(который, очевидно, является неверным именем пути). Это также добавит \\ к любым подпапкам в подпапках.

Ниже приведена процедура:

def dicitonary_list():
    indexlist=[]        #holds all files in the given directory including subfolders
    pdf_filenames=[]    #holds list of all pdf filenames in indexlist
    pdf_dir_list = []   #holds path names to indvidual pdf files 

    for root, dirs,files in os.walk('G:/Books/'):
        for name in files:
            indexlist.append(root + name)
            if ".pdf" in name[-5:]:
                pdf_filenames.append(name)

    for files in indexlist:
        if ".pdf" in files[-5:]:
            pdf_dir_list.append(files)

    dictionary=dict(zip(pdf_filenames, pdf_dir_list))       #maps the pdf names to their directory address

Я знаю, что я скучаю по чему-то простому, но из-за любви и денег я не вижу, что это такое. Новая пара глаз очень помогла бы!

1 ответ

Решение

Прямая и обратная косые черты - абсолютно допустимые разделители пути в Python в Windows.

>>> import os
>>> os.getcwd()
'j:\\RpmV'
>>> os.path.exists('j:\\Rpmv\\make.py')
True
>>> os.path.exists('j:/rpmv/make.py')
True
>>> os.path.isfile('j:\\Rpmv/make.py')
True
Другие вопросы по тегам