I have a procedure that os.walk
sa directory and its subdirectories to filter pdf files, separating out their names and corresponding pathnames. The issue I am having is that it will scan the topmost directory and print the appropriate filename eg G:/Books/Title.Pdf
but the second it scans a subfolder eg G:/Books/Sub Folder/Title.pdf
it will print the following
G:/Books/Sub Folder\\Title.Pdf
(which is obviously an invalid path name). It will also add \\\\ to any subfolders within subfolders.
Below is the procedure:
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
I know it's something simple that I am missing but for love nor money can i see what it is. A fresh pair of eyes would help greatly!
Forward slashes and backward slashes are both perfectly valid path separators in Python on 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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.