繁体   English   中英

获取python中子目录的名称(不是完整路径)

[英]Get name (not full path) of subdirectories in python

Stack Overflow 上有很多帖子解释了如何列出目录中的所有子目录。 但是,所有这些答案都允许获得每个子目录的完整路径,而不仅仅是子目录的名称。

我有以下代码。 问题是变量subDir[0]输出每个子目录的完整路径,而不仅仅是子目录的名称:

import os 


#Get directory where this script is located 
currentDirectory = os.path.dirname(os.path.realpath(__file__))


#Traverse all sub-directories. 
for subDir in os.walk(currentDirectory):
    #I know none of my subdirectories will have their own subfolders 
    if len(subDir[1]) == 0:
        print("Subdirectory name: " + subDir[0])
        print("Files in subdirectory: " + str(subDir[2]))

我怎样才能获得每个子目录的名称?

例如,而不是得到这个:

C:\\Users\\myusername\\Documents\\Programming\\Image-Database\\Curated\\Hype

我想要这个:

炒作

最后,我仍然需要知道每个子目录中的文件列表。

使用os.path.basename

for path, dirs, files in os.walk(currentDirectory):
    #I know none of my subdirectories will have their own subfolders 
    if len(dirs) == 0:
        print("Subdirectory name:", os.path.basename(path))
        print("Files in subdirectory:", ', '.join(files))

'\\'上拆分子目录字符串就足够了。 请注意, '\\'是一个转义字符,因此我们必须重复它以使用实际的斜杠。

import os

#Get directory where this script is located
currentDirectory = os.path.dirname(os.path.realpath(__file__))

#Traverse all sub-directories.
for subDir in os.walk(currentDirectory):
    #I know none of my subdirectories will have their own subfolders
    if len(subDir[1]) == 0:
        print("Subdirectory name: " + subDir[0])
        print("Files in subdirectory: " + str(subDir[2]))
        print('Just the name of each subdirectory: {}'.format(subDir[0].split('\\')[-1]))

为此,您可以将os.listdiros.path.isdir结合使用。

枚举您想要的目录中的所有项目,并在打印出目录的同时遍历它们。

import os
current_directory = os.path.dirname(os.path.realpath(__file__))
for dir in os.listdir(current_directory):
    if os.path.isdir(os.path.join(current_directory, dir)):
        print(dir)
import os
dirList = os.listdir()
for directory in dirList:
    if os.path.isdir(directory) == True:
        print('Directory Name: ', directory)
        print('File List: ', os.listdir(directory))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM