Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 2.7 在末尾重命名日志文件_Python 2.7_Logging_File Rename - Fatal编程技术网

Python 2.7 在末尾重命名日志文件

Python 2.7 在末尾重命名日志文件,python-2.7,logging,file-rename,Python 2.7,Logging,File Rename,在程序的开头,日志文件的名称为: filename='D://my\u code\u 3/logging/'+timestr+'\u XFR.log' ###set up logging to file logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',datefmt='%m-%d %H:%M',filename='D://my_code_3/l

在程序的开头,日志文件的名称为:

filename='D://my\u code\u 3/logging/'+timestr+'\u XFR.log'

###set up logging to file
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',datefmt='%m-%d %H:%M',filename='D://my_code_3/logging/'+timestr+'_XFR.log', filemode='w')
在程序执行过程中,会在此日志文件中创建各种条目

在程序结束时,需要重命名日志文件,以包含由程序捕获的唯一str变量(
str9
)(该变量最初在程序执行开始时不可用,当时刚刚创建日志文件)。为了在程序结束时重命名日志文件,必须首先关闭旧的_name日志文件。我在以下代码中包含了这些说明:

fh = open('D://my_code_3/logging/'+timestr+'_XFR.log', "r")
print fh.read()
fh.close()
最后,我要求如下重命名:

old_file ='D://my_code_3/logging/'+timestr+'_XFR.log'
new_file = 'D://my_code_3/logging/'+timestr+''+str9+'_XFR.log'
os.rename(old_file, new_file)
我收到以下错误消息:

`

回溯(最后一次调用):文件“qar\U xfr\U 2017\U 10\U 05\U WIP.py”, 第283行,输入 os.rename(旧文件、新文件)WindowsError:[错误32]进程无法访问该文件,因为另一个进程正在使用该文件`

我认为旧的_文件仍在编写中,因此该文件已打开。如果是,我如何在尝试重命名旧的_文件之前提供时间延迟


提前感谢您更正/建议解决方案。

所有处理程序都需要通过调用正确关闭

logging.shutdown()

之后,您可以重命名日志文件。

您的日志类是否正在关闭其文件句柄?您没有显式关闭logging类生成的句柄。@Carey:导入的包是
logging
。我没有建立任何其他类。我不打算手动关闭文件句柄。我尝试手动关闭文件句柄,因为在关闭日志文件之前不接受日志文件的重命名,这也不起作用。请建议在同一代码流中重命名日志文件的方法。谢谢。很抱歉延迟回复。