python使用正斜杠与反斜杠存储路径名 [英] python storing path names with forward vs backward slash

查看:220
本文介绍了python使用正斜杠与反斜杠存储路径名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个程序,该程序os.walk一个目录及其子目录来过滤pdf文件,并分离出它们的名称和相应的路径名.我遇到的问题是它将扫描最顶层的目录并打印适当的文件名,例如G:/Books/Title.Pdf,但第二次它扫描一个子文件夹,例如G:/Books/Sub Folder/Title.pdf,它将打印以下内容

I have a procedure that os.walks a 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 e.g. G:/Books/Title.Pdf but the second it scans a subfolder e.g 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.

以下是过程:

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!

推荐答案

在Windows上的Python中,正斜杠和反斜杠都是完全有效的路径分隔符.

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

这篇关于python使用正斜杠与反斜杠存储路径名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆