尝试循环执行多次

时间:2019-06-19 14:52:52

标签: python

我正在尝试创建一个程序,该程序会在X天后删除文件。我已经完成了该部分的工作,但是现在我需要编写代码,以删除仅位于空文件中的文件

这是用于从构建中获取日志文件的服务器,并且这些文件已放置在成千上万个其他文件夹中。如果它们是空的,我需要删除这些上层文件夹

import os
import shutil
import sys
import time

#for path you need to use the location of the log files
path = "C:/GroupData"
# Check current working directory.
retval = os.getcwd()
#this will list the name of the current directory
print("Current working directory %s" % retval)

# Now change the directory
#You will put the same location as you did for path
os.chdir('C:/GroupData/Temp')
workdir = os.getcwd()

# Check current working directory.
retval = os.getcwd()
#this will list the new name of the working directory
print("Directory changed successfully %s" % retval)

from subprocess import call

def get_file_directory(file):
    return os.path.dirname(os.path.abspath(file))
#this code is getting what today's date is
now = time.time()
#this code is saying that files that are older than todays date by 7 days will be deleted
cutoff = now - (10 * 86400)

files = os.listdir(os.path.join(get_file_directory('C://GroupData//Temp'), "temp"))
file_path = os.path.join(get_file_directory('C://GroupData//Temp'), "temp/")
#this locates what the file name is and looks to see how long ago it was modified
for xfile in files:
    files1 = os.listdir(os.path.join(get_file_directory('C://GroupData//Temp//' + xfile), xfile))
    file_path1 = os.path.join(get_file_directory('C://GroupData//Temp//' + xfile), xfile)
    for xfile1 in files1:
       if os.path.isfile(str(file_path1) + "\\" + xfile1):
            t = os.stat(str(file_path1) + "\\" + xfile1)
            #m is how long ago it was last modified
            m = t.st_mtime

            #if the cutoff date is older than the modified date the file will be deleted
            if m < cutoff:
            #if the file IS older than the cutoff os.remove deletes the file from the path
                os.remove(str(file_path1) + "\\" + xfile1)

files = os.listdir(os.path.join(get_file_directory('C://GroupData//Temp'), "temp"))
file_path = os.path.join(get_file_directory('C://GroupData//Temp'), "temp/")


os.rmdir(str(file_path1) + "\\") 

底部的代码有效,但一次只能处理一个文件,我需要它尽可能多地执行,以便它可以一次删除所有空文件,因为它将自动运行< / p>

0 个答案:

没有答案