正文
在python下自动删除文件夹,python删除指定文件夹
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
python 实时检测文件夹的大小,如果超过设定值,自动清空文件夹,如何
实时检测我觉得可能没必要了,周期性检测倒是不错,比如每隔30秒检查一次,除非你一秒钟就几十上百兆数据写入,那就得实时检测了。
实时监测的话,在while循环里不停的查看文件夹的变化
首写关于文件夹的大小,据我所知道的python标准库并没有提供关于文件夹大小的api或套件,你需要一个一个文件的去遍历获取文件的大小累加求和,获取文件大小可以使用os.stat(文件路径)。不过最好的方式,我觉得是通过调用系统命令获取文件夹的大小,这样就不用写递归方法,获取你要清空目录下的文件目录结构,当然目录结构简单的话,递归方法都不用写。不知道你的操作系统是什么,linux的话可以用
du -sh /data/applog/
在python2.7中可以使用commands.getoutput执行上面的命令并获取到输出结果
第二就是关于清空文件夹的,你必须保证没有程序对你要清空的目录进行访问,你才能正常的清空,否则,对于在使用中的文件你会清空失败。清空文件夹你可以使用shutil库里的rmtree()方法,它不管你文件夹是否有文件或子文件夹,使用它就是一行代码的事情,如果使用os模块进行删除的话你要从最底层文件夹开始删除。最后你再重新新建这文件夹
上面只是思路,具体使用还得根据你的实际需要来的
如果你要进行周期性检测的话,可以使用标准库中的sched库来开发
Python能不能做文件粉碎机,把文件或文件夹拖动到这个.py文件上面就自动强力删除(不进回收站)
不能
python要依赖cmd执行
也有别的界面库比如tk qt啥的,但绝不是拖到py文件上面
如何用python删除特定文件夹
#!/usr/bin/env python
import os
import shutil
delList = []
delDir = "/home/test"
delList = os.listdir(delDir )
for f in delList:
filePath = os.path.join( delDir, f )
if os.path.isfile(filePath):
os.remove(filePath)
print filePath + " was removed!"
elif os.path.isdir(filePath):
shutil.rmtree(filePath,True)
print "Directory: " + filePath +" was removed!"
shutil是一个高层次的文件操作模块。True参数表示ignore_errors(忽略拷贝时候的错误)。
类似于高级API,而且主要强大之处在于其对文件的复制与删除操作更是比较支持好。
[附] os模块(库)的使用
有关文件夹与文件的查找,删除等功能 在 os 模块中实现。
一、取得当前目录
#1.1
s = os.getcwd()
# s 中保存的是当前的执行目录(即执行所在的文件夹)
[注意]
如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数。
如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者sys.argv[0]来获得
#1.2
import os
import time
folder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())
os.makedirs(r'%s/%s'%(os.getcwd(),folder))
二、更改当前目录
os.chdir( "/root/123")
#将当前目录设为 "/root/123"
#说明: 当指定的目录不存在时,引发异常。
三、将一个路径名分解为目录名和文件名两部分
fpath , fname = os.path.split( "你要分解的路径")
例如:
a, b = os.path.split( "/root/123/test.txt" )
print a
print b
显示:
/root/123/
test.txt
四、分解文件名的扩展名
fpathandname , fext = os.path.splitext( "你要分解的路径")
例如:
a, b = os.path.splitext( "/root/123/test.txt" )
print a
print b
显示:
/root/123/test
.txt
五、判断一个路径( 目录或文件)是否存在
b = os.path.exists( "你要判断的路径")
返回值b: True 或 False
六、判断一个路径是否文件
b = os.path.isfile( "你要判断的路径")
返回值b: True 或 False
七、判断一个路径是否目录
b = os.path.isdir( "你要判断的路径")
返回值b: True 或 False
八、获取某目录中的文件及子目录的列表
L = os.listdir( "你要判断的路径")
例如:
L = os.listdir( "/root/123" )
print L
显示 :
['test.txt', 'test.py','python']
#这里面既有文件也有子目录
九、创建子目录
os.makedirs( path ) # path 是"要创建的子目录"
例如:
os.makedirs("/root/123")
调用有可能失败,可能的原因是:
(1) path 已存在时(不管是文件还是文件夹)
(2) 驱动器不存在
(3) 磁盘已满
(4)磁盘是只读的或没有写权限
十、删除子目录
os.rmdir( path ) # path: "要删除的子目录"
产生异常的可能原因:
(1) path 不存在
(2) path 子目录中有文件或下级子目录
(3) 没有操作权限或只读
十一、删除文件
os.remove( filename ) # filename: "要删除的文件名"
产生异常的可能原因:
(1) filename 不存在
(2) 对filename文件, 没有操作权限或只读。
十二、文件改名
os.name( oldfileName, newFilename)
产生异常的原因:
(1) oldfilename 旧文件名不存在
(2) newFilename 新文件已经存在时,此时,您需要先删除 newFilename 文件。
Python删除文件命令合集
python删除文件夹或者文件时;可以使用os和shutil模块相关的命令
os模块提供的方法
1.os.remove(path) #path是文件路径,如果path是一个文件夹路径时,会抛出OSError错误
2.os.unlink(path) #path功能和remove一致,但是删除一个正在使用的文件时会报错
3.os.rmdir(path) #path是文件夹路径,注意此时文件夹是要空才能被删除,如果文件夹不为空时,要先删除文件夹下的文件后,才能使用此命令
4.os.removedirs(path) #path递归地删除目录,如果子目前成功被删除,则将会成功删除父目录,子目录没有成功删除,将抛出异常
shutil模块提供的方法有:
1.shutil.rmtree(dir) #dir为目录,可以删除有内容的目录
2.shutil.rmdir(dir) #dir为目录,只能删除空目录
python怎么删除文件夹以及里面的所有文件
os包的rmdir()函数可以用来删除一个文件夹,但是文件夹必须是空的。一种可行的方法是读取文件夹的文件列表,逐个删除文件夹中的所有文件,然而文件夹中可能还有文件夹,因此这是一个递归的操作。
shutil包rmtree()函数就实现了以上功能。shutil是一个高级文件操作的包,实现了文件及文件集合复制与删除的功能。rmtree()函数接收非空文件夹的路径这唯一一个参数。示例代码如下:
import
shutil
path
=
'g:\zhidao'
shutil.rmtree(path)
说说在 Python 中如何复制、移动、改名以及删除文件或文件夹
要实现复制、移动、改名以及删除文件或文件夹,需要用到 shutil 模块,shutil 是 shell util 的简写形式,表示 shell 工具。
调用 shutil.copy(source, destination) 来实现复制文件或文件夹功能,依据 destination 进行区分:
运行结果:
注意: 指定复制的文件夹必须存在,否则会抛出 FileNotFoundError。
shutil 的 copytree(source, destination) 方法会复制整个文件夹,包括它所包含的所有文件夹和文件。source
指定源文件夹,destination 指定新的文件夹。source 和 destination 入参都是字符串。该函数会返回新文件夹的路径。destination 如果不存在,会自动创建。请看下例:
运行结果:
shutil.move(source, destination) 方法会将路径 source 处的文件移动到路径 destination,并返回新位置的绝对路径的字符串。
如果 destination 指向一个文件夹, source 处的文件将移动到 destination 中, 并保持原来的文件名。
运行结果:
注意:
os 模块中的函数,可以实现删除一个文件或一个空文件夹。而 shutil 更强大,使用它可以删除一个非空文件夹!
注意: 因为是永久删除,所以使用这些函数一定要小心!建议调试程序时, 先注释掉这些删除方法,
然后加上 print(), 把要被删除的文件打印出来,确认后,再执行。
打印出来的文件列表确认无误后,再执行 os.unlink(filename) 执行删除操作。
send2trash 模块会将文件夹或文件发送到计算机的回收站。首先,安装它:
安装成功后,调用 send2trash.send2trash 方法,就可以把文件夹或文件发送到计算机的回收站。请看下例:
建议使用 send2trash.send2trash() 函数来删除文件或文件夹,因为以后还可以从回收站还原。但这样做,不
会释放磁盘空间。如果我们还是希望程序释放磁盘空间, 就要用 os 和 shutil 来删除文件和
文件夹(记得使用之前提出的 print 技巧)。还有一点需要注意, send2trash() 函数只能将文件送到回收站, 但不能从回收站中恢复文件。
在python下自动删除文件夹的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python删除指定文件夹、在python下自动删除文件夹的信息别忘了在本站进行查找喔。