Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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_File_Dynamic_Io_Modular - Fatal编程技术网

Python,在大型模块化程序中保持动态命名文件的打开状态

Python,在大型模块化程序中保持动态命名文件的打开状态,python,file,dynamic,io,modular,Python,File,Dynamic,Io,Modular,我试图为一个大型模块化程序创建一个日志文件。名称是用时间戳动态生成的,我想不出传递打开的文件名的好方法,只能使其成为全局变量: import time def CreateLogFile(): timestr = time.strftime("%Y%m%d-%H%M%S") global LogFile filenamestring = timestr + 'LogFile.txt' LogFile = open('PrintLogs/' + filenames

我试图为一个大型模块化程序创建一个日志文件。名称是用时间戳动态生成的,我想不出传递打开的文件名的好方法,只能使其成为全局变量:

import time

def CreateLogFile():
    timestr = time.strftime("%Y%m%d-%H%M%S")
    global LogFile
    filenamestring = timestr + 'LogFile.txt'
    LogFile = open('PrintLogs/' + filenamestring, 'w')

CreateLogFile()

这不太管用,我想知道是否有人有更好的建议。谢谢

只需制作您自己的日志模块:

import mylogger

log_file_handle = mylogger.get_log()

get
方法可以(应该)处理创建新日志文件的所有逻辑,如果您还没有创建日志文件,或者将句柄返回到已创建的会话文件。

您可以将其全部封装到一个类中,以避免全局性。然后你可以将类的一个实例传递给需要使用它的模块。谢谢,我不知道logger模块存在