当python只需要文件夹时,python打印文件夹和子文件夹

标签 python directory python-os

我正在制作一个程序,用 python 打印 90 天内的所有文件夹。
这是我的代码:

import os
from datetime import date
from Tkinter import *
import Tkinter, Tkconstants, tkFileDialog


old_dirs = []
today = date.today()

home1 = os.path.join(os.environ["HOMEPATH"], "Desktop")
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')

root = Tk()
root.withdraw()
path = tkFileDialog.askdirectory(initialdir=desktop, title="Select folder to 
scan from: ")
path = path.encode('utf-8')

for root, dirs, files in os.walk(path):
    for name in dirs:
        filedate = date.fromtimestamp(os.path.getmtime(os.path.join(root, name)))
        if (today - filedate).days > 90:
            print name
            old_dirs.append(name)

问题是这会打印所有文件夹,但它也会打印文件夹的子文件夹,这是我不需要的。如何更改代码以便只打印文件夹?

最佳答案

打印目录后就中断:

for root, dirs, files in os.walk(path):
    for name in dirs:
        filedate = date.fromtimestamp(os.path.getmtime(os.path.join(root, name)))
        if (today - filedate).days > 90:
            print name
            old_dirs.append(name)
    break

或者考虑使用os.listdir(),它不会递归到子目录(但您必须检查结果中是否有非目录)。

关于当python只需要文件夹时,python打印文件夹和子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44985850/

相关文章:

python - 如何检测 jinja 中的 Debug模式?

python - 给定一个按字典顺序排列的元素列表(即 ['a' 、 'b' 、 'c' 、 'd' ]),找出第 n 个排列 - 求解的平均时间?

python - 哪些脚本会进入 Python 包的 bin 文件夹?

python - 除了这些方法之外,如何获取路径的子文件夹名称?

python - 为什么 os 模块不运行 wget cmd 命令?

具有 2 个 gtk 窗口的 python 多处理

android - 由于 'build' 文件夹问题,适用于 Android 的 React Native 编译在 Windows 上失败

c++ - 如何在 C++/Linux 中创建目录树?

python - 如何从 pathlib.path 获取给定文件所在的文件夹名称?

python - Django:检查对象是否存在但不是对象的当前实例