我正在测试atexit
模块是否通过尝试打印到文件而正常运行。 atexit
的实际目的是关闭开放端口,但这是为了测试atexit
是否正在起作用。但是,atexit
不打印到文件,任何想法为什么不?任何帮助表示赞赏。
import atexit
import scala5
from scala5 import sharedvars
scalavars = sharedvars()
import serial
myPort=serial.Serial()
myPort.baudrate = 9600
myPort.port = "COM4"
myPort.parity=serial.PARITY_NONE
myPort.stopbits=serial.STOPBITS_ONE
myPort.bytesize=serial.EIGHTBITS
myPort.timeout=2
myPort.writeTimeout=2
try:
myPort.close()
except:
print("didn't need to close")
def port_exit():
fo = open("test.txt", "w")
fo.write("This works!")
fo.close()
myPort.open()
while True:
x = myPort.readline()
if x == "1\r\n":
scalavars.door = x
scala5.ScalaPlayer.Sleep(10)
atexit.register(port_exit)
port_exit()
答案 0 :(得分:0)
你正在注册你的while循环之后的函数,我假设你通过杀死脚本退出(意味着函数this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
没有注册)。如果您在while之前注册该函数,则它应该在脚本退出时触发并写入该文件。
port_exit