我的代码如下-
#!/usr/bin/env python
import time, glob, os, sys
from datetime import date, timedelta
try:
dpath = sys.argv[1]+"/"
except:
print "usage: " + sys.argv[0] +" <dir_path_to_purge_files>"
sys.exit(1)
print dpath
day_minus_mtime = time.mktime(date.today().timetuple())
g = glob.glob(dpath+"*")
for f in g:
try:
if day_minus_mtime > os.path.getmtime(f):
os.remove(f)
print "Removed: "+f
except OSError, e:
print "Not able to Remove: "+f , e
我相信os.remove(file)相当于linux中的“rm file”。
我想知道“rm-f文件”的等价函数。强制删除文件或强制取消文件路径与目录的链接。
上面的代码也试图清除比今天旧的文件。 我有一个情况,文件没有删除,因为它是“写保护”由于所有权。但当我对同一个文件使用“rm-f”时,它将被删除。
I think it is better to ask a question, even though it sounds stupid to yourselves
根据我的手册页,rm的--force选项意味着忽略不存在的文件和从不提示。
never prompt部分很简单,您的python remove不会提示,对吧?
ignorenonexistingfiles也很简单:您可以在删除之前检查文件是否存在。您有一个小竞争条件,因为文件可能在存在性检查和删除之间消失。或者您可以捕获OSError,并验证是否由于该文件不存在而引发该错误(OSError:[Errno 2]没有此类文件或目录…)。出现此错误的另一个原因是,要删除的文件不是文件而是目录。
force选项执行mo permission magic(至少在我的linux上),请记住,删除文件是对目录的写操作。
相关问题 更多 >
编程相关推荐