Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何删除文件并创建已删除内容的日志文件?_Python_Automation - Fatal编程技术网

Python 如何删除文件并创建已删除内容的日志文件?

Python 如何删除文件并创建已删除内容的日志文件?,python,automation,Python,Automation,我用Python编写了一个脚本,它将从特定目录中删除具有特定扩展名的文件。但我想知道,无论删除什么文件,它们的名称都应该存储在日志文件或.txt文件中 例如,我在'C:\SampleFolder'位置有一个文件a.log和b.log,我正在使用以下脚本从该文件夹中删除这两个文件。因此,它们的名称'a.log'和'b.log'应该存储在'delete.log'文件中,带有日期和时间 我必须在代码中做什么样的修改,或者为此我必须使用哪个函数或库 import os, time, sys folde

我用Python编写了一个脚本,它将从特定目录中删除具有特定扩展名的文件。但我想知道,无论删除什么文件,它们的名称都应该存储在日志文件或.txt文件中

例如,我在
'C:\SampleFolder'
位置有一个文件
a.log
b.log
,我正在使用以下脚本从该文件夹中删除这两个文件。因此,它们的名称
'a.log'
'b.log'
应该存储在
'delete.log'
文件中,带有日期和时间

我必须在代码中做什么样的修改,或者为此我必须使用哪个函数或库

import os, time, sys

folder_path = "C:\SampleFolder"
file_ends_with = ".log"
how_many_days_old_logs_to_remove = 7

now = time.time()
only_files = []

for file in os.listdir(folder_path):
    file_full_path = os.path.join(folder_path,file)
    if os.path.isfile(file_full_path) and file.endswith(file_ends_with):
        #Delete files older than x days
        if os.stat(file_full_path).st_mtime < now - how_many_days_old_logs_to_remove * 86400: 
             os.remove(file_full_path)
             print "\n File Removed : " , file_full_path
导入操作系统、时间、系统
folder\u path=“C:\SampleFolder”
文件以“.log”结尾
要删除多少天的日志=7
now=time.time()
仅_文件=[]
对于os.listdir(文件夹路径)中的文件:
file\u full\u path=os.path.join(文件夹路径,文件)
如果os.path.isfile(文件完整路径)和file.endswith(文件以结尾):
#删除早于x天的文件
如果os.stat(file_full_path).st_mtime
一种方法是将日志处理程序添加到程序中,然后不打印消息,只需将其记录下来,它将拥有所有必要的信息,并提供所有日志支持,这可能对您将来对代码所做的任何修改有用

import logging.handlers
导入日志记录
handler=logging.handlers.WatchedFileHandler(“/path/to/storage/file/my_app.log”)
#定义日志的格式,在本例中,仅包含日志消息的日期和时间
格式化程序=logging.formatter(“%(asctime)s;%(message)s”)
#安装新的模板
handler.setFormatter(格式化程序)
#获取记录器实例并更新其设置
logger=logging.getLogger()
logger.setLevel(“信息”)
logger.addHandler(处理程序)
#现在只需登录即可
logging.info(“文件已删除:{}.”格式(“您的文件.log”))

您可以将上面的代码段添加到您的程序中,并从中记录所需内容-它将被写入您指定的文件中。有关日志记录的更多信息,请阅读Python。

您需要打开日志文件进行写入,然后将每个已删除文件的名称和时间戳信息写入其中。很抱歉,这不是代码编写服务…每个删除的文件都在
for
循环中的
文件中有其名称(以及
文件的完整路径)
os.stat()
有其时间戳。