python 创建目录时间_python1用Python删除本地目录下某一时间点之前创建的所有文件...

因为工作原因,需要定期清理某个文件夹下面创建时间超过1年的所有文件,所以今天集中学习了一下Python对于本地文件及文件夹的操作。网上 这篇文章 简明扼要地整理出最常见的os方法,抄袭如下:

os.listdir(dirname):列出dirname下的目录和文件

os.getcwd():获得当前工作目录

os.curdir:返回当前目录('.')

os.chdir(dirname):改变工作目录到dirname

os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false

os.path.isfile(name):判断name是不是一个文件,不存在name也返回false

os.path.exists(name):判断是否存在文件或目录name

os.path.getsize(name):获得文件大小,如果name是目录返回0L

os.path.abspath(name):获得绝对路径

os.path.normpath(path):规范path字符串形式

os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

os.path.splitext():分离文件名与扩展名

os.path.join(path,name):连接目录与文件名或目录

os.path.basename(path):返回文件名

os.path.dirname(path):返回文件路径

电脑技术网从python1用Python删除本地目录下某一时间点之前创建的所有文件分析来看,对python1用Python删除本地目录下某一时间点之前创建的所有文件的结果。

os.remove(dir) #dir为要删除的文件夹或者文件路径

os.rmdir(path) #path要删除的目录的路径。需要说明的是,使用os.rmdir删除的目录必须为空目录,否则函数出错。

os.path.getmtime(name) #获取文件的修改时间

os.stat(path).st_mtime#获取文件的修改时间

os.stat(path).st_ctime #获取文件修改时间

os.path.getctime(name)#获取文件的创建时间

于是我照着这些方法,费半天劲,终于写出了“清理某路径下所有文件及文件夹”的方法,代码如下:

1 import os

2

3 dirToBeEmptied = 'D:_DataPythonos' #需要清空的文件夹

4

5 ds = list(os.walk(dirToBeEmptied)) #获得所有文件夹的信息列表

6 dsr = ds[::-1] #反转该列表,从最底层的文件夹开始清算

7

8 for d in dsr: #遍历该列表

9 print(d) #打印出列表项,观察规律

10 if d[2] != []: #如果该路径下有文件

11 for x in d[2]: #先将文件清理干净

12 os.remove(os.path.join(d[0], x))

13 for d in dsr: #再次遍历该列表

14 if d[1] != []: #如果该路径下有子文件夹

15 for y in d[1]: #将子文件夹清理干净

16 os.rmdir(os.path.join(d[0], y))

之所以这么麻烦,是因为 os.rmdir() 有个毛病,只能删除“空”文件夹。所以只能从最底层的文件夹开始清理,一级一级往上,才能清干净。

后来想想,应该有更简便的方法,因为清空文件夹是很常见的动作。查了Python官方文档,发现了os以外的另一个模块:shutil(高级文件操作),竟然有 shutil.rmtree() 的方法,不仅是清空,直接连文件夹都一起删掉,太凶残了!

为了“仅仅清空”,我搭配使用 shutil 模块重写了代码:

1 import shutil, os

2

3 os.chdir('d:_datapythonos') #进入要清空的目录

4 ds = list(os.listdir()) #获得该目录下所有文件或文件夹列表

5 for d in ds: #遍历该列表

6 if os.path.isfile(d): #如果列表项是文件

7 os.remove(d) #直接删除

8 else: #如果不是文件,肯定是文件夹

9 shutil.rmtree(d) #也直接删除

这下可就简洁多了。

不过,清空一时爽,但已经偏离我原来的目的了:我只是想删除过期的文件,但文件夹和所有子文件夹都得留着啊。倒也不难,最开始的代码中,第1次遍历列表就是只删文件、不删文件夹。只要再加个判断语句,判断出文件是否过期,就能达到目的了。

我要删除的文件,实际上是做镜像备份时,将已从主机删除或更改的文件暂时保存下来,以备恢复之用。这些文件久了会越来越占空间,因此设定为1年过期。这些文件有一个特点,就是只会被复制过来一次,且不会有任何修改,因此只需要判断其创建日期就可以。

想着是容易,但万万没想到,Python对时间的处理这么复杂!涉及到两个模块:datetime 和 time。有时间必须重头系统学习一下,但这里,我只关心现在需要的几个方法:

datetime.datetime.now() #获取当前时间,返回值的格式类似 datetime.datetime(2017, 12, 14, 1, 29, 24, 406538)

datetime.timedelta() #设定两个时间之间的间隔,用于时间计算,可以设置的单位包括:(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0),默认都为0

更多:python1用Python删除本地目录下某一时间点之前创建的所有文件

https://www.002pc.comhttps://www.002pc.com/python/1153.html

你可能感兴趣的Python,某一时间,删除,本地,目录,创建

php判断是否为汉字PHP删除非空目录的函数代码小结

有了这个小程序,PHPer就不用手动进行删除计算机上的目录文件了,在练习PHP目录文件操作时就可以用这个函数,在这个基础上还可以增加浏览文件夹目录,然后进行删除。代码一:复制代码

面试时闻到linux的问题Linux删除制定时间的文件的方法

电脑技术网认为此文章对《面试时闻到linux的问题Linux删除制定时间的文件的方法》说的很在理。

linux下如果想要批量删除制定时间的文件,可以使用find命令:

find /home -max

php中什么代表换行PHP目录函数实现创建、读取目录教程实例

今天主要介绍在PHP网站开发中文件目录函数的应用。在PHP网站开发中,我们时常需要读取目录文件信息或者创建目录以存放必要的文件,而当目录文件大小超出规定大小时我们又需要删

linux find 删除目录tac命令的实现

电脑技术网对《linux find 删除目录tac命令的实现》总结来说,为我们程序员很实用。首先将文件指针置于文件尾,从后

linux服务器如何修改文件名称rm命令删除文件时排除特定文件

删除文件时排除特定文件删除当前目录下所有 *.txt文件,除了test.txtrm `ls *.txt|egrep -v test.txt`#或者rm `ls *.txt|awk '{if($0

xp开机时怎么进入DOS对症下药 剔除文件删除顽固障碍

我们使用电脑一段时间后,经常会发现有那么几个无法删除的顽固文件和目录。其实,要删除这些顽固文件和目录还是有办法的,只要找准原因,对症下药。

用文件粉碎工具 删

linux目录中创建文件Linux内核曝危急漏洞

导读:   《linux目录中创建文件Linux内核曝危急漏洞》总结了关于linux基础教程教程,对于我们来www.002pc.com确实能学到不少知识。

xp.安装WindowsXP目录和文件操作命令

Windows XP 控制台命令详解 - 目录和文件操作命令

Attrib

更改单个文件或目录的属性。该命令设置或删除指派给文件或目录的只读、系统、存档、隐藏以及压缩属

Win8怎么打开画图程序Win8系统创建/删除/格式化分区的方法

Win8系统创建/删除/格式化分区

1、Win8系统中将鼠标移动到屏幕右下方,在弹出的菜单上点击“设置”。

2、在菜单上点击“控制面板”项,打开“控制面板”窗

学电脑制版用命令实现活动目录(AD域控)的创建

在PowerShell上执行以下命令:1、安装活动目录角色:Install-WindowsFeature AD-Domain-Services2、导入活动目录的PowerShell命令模块:《学电脑制版用命令实现活动目录

0踩

0 赞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值