我想删除所有一天以上的文件,但隐藏文件
我尝试了以下代码,但似乎它也尝试删除隐藏文件,如何修改它以便删除所有文件但不删除隐藏文件?
import os
import time
current_time = time.time()
for f in os.listdir():
creation_time = os.path.getctime(f)
if (current_time - creation_time) // (24 * 3600) >= 1:
os.unlink(f)
print('{} removed'.format(f))
如果是linux,我本来可以做到的,
if not f.startswith('.'):
我已经浏览了以下链接:https://bitbucket.org/aafshar/pida-main/src/tip/pida/services/filemanager/filemanager.py
我可能不太了解。一个更简单的代码将不胜感激。
答案 0 :(得分:0)
此代码用于Windows文件系统,我没有检查unlink部分(这是正确的,我的假设):代码在代码注释中进行了说明。 btw 24 * 3600 == 86400(以秒为单位的24小时)
import os
import time
import win32file
import win32con
from datetime import datetime
#convert float to datetime obj, current time
current_time = datetime.strptime(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())),'%Y-%m-%d %H:%M:%S')
for f in os.listdir():
#file's time to datetime object
creation_time = datetime.strptime(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getctime(f))),'%Y-%m-%d %H:%M:%S')
#subtract both the time -->timedelta object
z= current_time - creation_time
#get windows attribute for the file
file_flag = win32file.GetFileAttributesW(f)
#check the attribute value for files in windows, for hidden files the attribute should be '2'
is_hidden = file_flag & win32con.FILE_ATTRIBUTE_HIDDEN
if ((z.seconds >= 86400) and (is_hidden != 2)):
os.unlink(f)
print('{} removed'.format(f))
windows文件系统代码参考:link