首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取python中子目录的名称(而不是完整路径)

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

Stack Overflow用户
提问于 2018-07-11 03:23:27
回答 4查看 3.2K关注 0票数 1

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

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

代码语言:javascript
复制
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

我想要这样:

炒作

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-11 03:30:57

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

代码语言:javascript
复制
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]))
票数 2
EN

Stack Overflow用户

发布于 2018-07-11 03:29:28

使用os.path.basename

代码语言:javascript
复制
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))
票数 2
EN

Stack Overflow用户

发布于 2018-07-11 03:29:58

您可以结合使用os.listdiros.path.isdir来实现这一点。

枚举所需目录中的所有项目,并在打印出属于目录的项目时遍历这些项目。

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51272691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档