我正在尝试使用python守护程序库生成一个将写入文件的守护程序。你知道吗
当我直接在“if uuu name_uuuuu=='\uuuu main_uuuuuuu'”语句中创建守护进程时,守护进程成功地写入文件:
from daemon import DaemonContext
def main():
my_file.write("Daemon creation was successful")
my_file.close()
if __name__ == "__main__":
my_file = open("my_file", "w+")
with DaemonContext(files_preserve=[my_file.fileno()]):
main()
但是,当我使用单独的函数创建守护程序时,守护程序不会写入文件:
from daemon import DaemonContext
def main():
my_file.write("Daemon creation was successful")
my_file.close()
def create_daemon():
my_file = open("my_file", "w+")
with DaemonContext(files_preserve=[my_file.fileno()]):
main()
if __name__ == "__main__":
create_daemon()
工作示例中的if语句和非工作示例中的“create\ u daemon”函数共享完全相同的代码。为什么我不能通过调用函数来创建守护进程?你知道吗
在第二个示例中,
main
函数引用了不在该函数作用域中的my_file
。你知道吗该函数将(如果您的示例已完成)为
my_file
名称生成一个NameError
。你知道吗一种纠正方法是将
my_file
设为main
的参数。你知道吗这与守护进程无关。
main
无权访问my_file
;您没有将文件作为参数或任何内容传入。你知道吗相关问题 更多 >
编程相关推荐