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