2015-09-15 62 views
1

首先创建具有特定扩展名的子目录列出文件,我是新来的特别节目和Python,因此我努力寻找一个合适的解决方案。的Python:在过去24小时内

我试图寻找与递归特定扩展名已创建仅在过去24小时内,要么将结果打印到屏幕上,保存到文件中,这些文件复制到目录中的文件。

下面是一个例子做了大部分的我想实现什么,除非它找到与给定的扩展名的文件的代码,但是,我只需要在过去24小时或更短时间内创建的文件。

import os 
import shutil 

topdir = r"C:\Docs" 
dstdir = r"C:\test" 

exten = ".png" 

for dname, names, files in os.walk(topdir): 
    for name in files: 
     if name.lower().endswith(exten): 
      # Prints result of walk 
      print(os.path.join(dname, name)) 
      #copy all files with given extension to the dst folder 
      path = os.path.realpath(os.path.join(dname, name)) 
      shutil.copy2(path, dstdir)  
+1

【如何获得文件的创建和修改日期/ Python中的时间?(http://stackoverflow.com/q/237079/953482) – Kevin

+0

就像@Kevin所说的,使用'time.ctime'和'os.path.getctime'。 –

回答

1
compare_date = datetime.datetime.today() - datetime.timedelta(hours = 24) 

里面嵌套循环,你可以将这些代码

create_dt = os.stat(name).st_mtime 
created_date = datetime.datetime.fromtimestamp(create_dt) 
if created_date > compare_date: 
    print name 
+0

感谢Vineesh,但我收到的时候认定.pdf文件下面的错误“FileNotFoundError:[WinError 2]系统找不到指定的文件” –

+0

@马克我怀疑,PDF文件不在当前工作目录。你可以像create_dt = os.stat(dname +'\'+ name).st_mtime一样在“create_dt”中添加文件的完整路径。这可能会帮助你。 – Vineesh

+0

不幸的是你的建议没有帮助,现在越来越 - create_dt = os.stat(DNAME +“\” +姓名).st_mtime ^ 语法错误:EOL同时扫描字符串字面关于以前的搜索,我不搜索PDF,我尝试在提供的目录中查找.py文件,它会查找过去24小时内创建的任何.py文件,然后尝试在子目录中进一步搜索,找到除扩展名之外的第一个文件并引发该错误。 –

相关问题