用正斜杠和反斜杠存储路径名的python

2024-06-06 23:46:50 发布

您现在位置: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

我知道这是一件很简单的事情,我错过了,但无论是爱情还是金钱,我都看不见它是什么。一双新的眼睛会大有帮助!


Tags: namein文件夹forpdftitleosdir
1条回答
网友
1楼 · 发布于 2024-06-06 23:46:50

在Windows上的Python中,正斜杠和反斜杠都是非常有效的路径分隔符。

>>> 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

相关问题 更多 >