os.walk
ディレクトリとそのサブディレクトリでpdfファイルをフィルタリングし、それらの名前と対応するパス名を分離する手順があります。私が抱えている問題は、最上位のディレクトリをスキャンして適切なファイル名を出力することですG:/Books/Title.Pdf
が、2番目にサブフォルダーをスキャンする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
私が見逃しているのは単純なことだとわかっていますが、愛でもお金でも、それが何であるかを理解することはできません. 新鮮な目は大いに役立ちます!