我正在制作一个程序,用 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/