首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python打印子目录名

如何使用python打印子目录名
EN

Stack Overflow用户
提问于 2017-04-30 23:56:03
回答 1查看 278关注 0票数 0

我的代码扫描“监视器”文件夹下的目录和子目录,但不知怎么的,我没有打印子目录名。

显示器是父目录,戴尔是子目录,io是戴尔下的文件。

代码语言:javascript
复制
-Monitors
-------- Cab.txt
--- Dell
-------- io.txt
-------- io2.txt

我的父目录和代码

代码语言:javascript
复制
parent_dir = 'E:\Logs\Monitors'

def files(parent_dir):
    for file in os.listdir(parent_dir):
      if os.path.isfile(os.path.join(parent_dir, file)):
        yield file

def created(file_path):
    if os.path.isfile(file_path):
        file_created =  time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getctime(file_path)))
        return file_created


len = (item for item in files(parent_dir))
str = ""
for item in len:
    str +="File Name: " + os.path.join('E:\\Logs\\Monitors\\', item) + "\n" \
    + "File Created on: " + created(os.path.join('E:\\Logs\\Monitors\\', item)) + "\n" \
print str;

输出

代码语言:javascript
复制
E:Logs\Monitors\Cab.txt
E:Logs\Monitors\io.txt
E:Logs\Monitors\io2.txt

我想要的输出

代码语言:javascript
复制
E:Logs\Monitors\Cab.txt
E:Logs\Monitors\Dell\io.txt
E:Logs\Monitors\Dell\io2.txt

我尝试在path.join中使用变量,但以错误结尾。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 00:01:29

与其使用os.listdir(),不如使用os.walk()遍历树中的所有目录:

代码语言:javascript
复制
for dirpath, dirnames, filenames in os.walk(parent_dir):
    for filename in filenames:
        full_path = os.path.join(dirpath, filename)
        print 'File Name: {}\nFile Created on: {}\n'.format(
            full_path, created(full_path))

os.walk()上的每一次迭代都会为您提供关于一个目录的信息。dirpath是该目录的完整路径,dirnamesfilenames是该位置的目录和文件名列表。只需在文件名上使用一个循环来处理每个文件名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43712580

复制
相关文章

相似问题

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