gpt4 book ai didi

Python:创建一个空文件对象

转载 作者:行者123 更新时间:2023-11-28 20:42:34 25 4
gpt4 key购买 nike

我正在尝试为 Python 制作一个日志记录模块,但它无法工作,因为它在创建文件对象时失败。

调试.py:

import os
import datetime
import globals

global fil
fil = None

def init(fname):
fil = open(fname, 'w+')
fil.write("# PyIDE Log for" + str(datetime.datetime.now()))

def log(strn):
currentTime = datetime.datetime.now()

fil.write(str(currentTime) + ' ' + str(os.getpid()) + ' ' + strn)
print str(currentTime) + ' ' + str(os.getpid()) + ' ' + strn

def halt():
fil.close()

fil 将无法像 None 一样工作,因为我得到一个 AttributeError。我还尝试创建一个虚拟对象:

fil = open("dummy.tmp","w+")

但是 dummy.tmp 文件被写入,即使在 log() 之前调用了 init()。显然,您不能在已经打开的文件上打开新文件。我试图在 init() 之前关闭 fil,但是 Python 说它无法对关闭的文件执行 write()

这是访问debug.py

的代码
if os.path.exists(temp):
os.rename(temp, os.path.join("logs","archived","log-" + str(os.path.getctime(temp)) + ".txt"))
debug.init(globals.logPath)
debug.log("Logger initialized!")

我想登录我的程序,但找不到解决方法。

最佳答案

你的问题是你没有分配给全局fil:

def init(fname):
fil = open(fname, 'w+')

这将创建一个名为 fil 的新局部变量。

如果你想给全局变量fil赋值,你需要把它放到局部作用域中:

def init(fname):
global fil
fil = open(fname, 'w+')

关于Python:创建一个空文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30335112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com