python speichern von Pfad-Namen mit forward vs. backward slash
Ich habe eine Prozedur, die os.walk
s ein Verzeichnis und dessen Unterverzeichnissen zum filtern von pdf-Dateien, die Trennung Ihrer Namen und den entsprechenden Pfadnamen. Das Problem, das ich habe ist, dass es scannt das oberste Verzeichnis und drucken Sie den entsprechenden Dateinamen z.B. G:/Books/Title.Pdf
aber der zweite scannt es ein Unterordner e.g G:/Books/Sub Folder/Title.pdf
es wird gedruckt, die folgenden
G:/Books/Sub Folder\\Title.Pdf
(das ist natürlich ein Ungültiger Pfadname). Es wird auch hinzufügen, \ \ bis alle Unterordner in Unterordner.
Unten ist die Prozedur:
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
Ich weiß, es ist etwas einfach, dass ich bin fehlt, aber für die Liebe noch Geld, kann ich sehen, was es ist. Ein frisches paar Augen würde sehr helfen!
G:/Books/Sub Folder\\Title.Pdf
ist eine perfekt gültige Pfadnamen, wenn die\\
interpretiert werden als Python-string-notation für eine einzelne\
. Wie drucken Sie den Pfad?- Statt
indexlist.append(root + name)
Sie verwenden solltenindexlist.append(os.path.join(root,name))
os.path.sep
wird Ihnen sagen, die richtige Trennlinie zu verwenden für das Betriebssystem, das Sie auf ... es gibt viele os.Pfad Stoffe, die helfen können, diese Art der Sache...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schrägstriche und umgekehrte Schrägstriche sind beide absolut gültigen Pfad-Separatoren in Python auf Windows.