Python 脚本 运行 在后台不写入文件?
Python script run in background not writing to file?
我已经创建了我的第一个 python 脚本,它在前台运行良好,但是当我 运行 它在后台创建时,它创建了,但无法将任何内容写入文件。我 运行 使用命令的脚本:python -u testit.py &
请帮我理解为什么会这样。
#!/usr/bin/env python
import time
import datetime
dt = datetime.datetime.now()
dtLog = dt.strftime("ThermoLogs/TempLOG%Y%m%d")
f = open(dtLog,"a")
while True:
dt = datetime.datetime.now()
print('{:%Y-%m-%d %H:%M:%S}'.format(dt))
f.write('{:%Y-%m-%d %H:%M:%S}'.format(dt))
f.write('\n')
time.sleep(5)
输出将以突发形式到达(正在缓冲)。将睡眠设置为 0.01
后,我大约每 2 秒就会爆发一次。因此,对于 5
的延迟,您获得它们的频率会大大降低。您可能还会注意到,当您终止它时,它会输出所有待处理的输出。
要使输出立即到达,请调用 f.flush()
。
我看不出前景和背景有什么区别。但是,它不应该在进入终端时缓冲标准输出。
我已经创建了我的第一个 python 脚本,它在前台运行良好,但是当我 运行 它在后台创建时,它创建了,但无法将任何内容写入文件。我 运行 使用命令的脚本:python -u testit.py &
请帮我理解为什么会这样。
#!/usr/bin/env python
import time
import datetime
dt = datetime.datetime.now()
dtLog = dt.strftime("ThermoLogs/TempLOG%Y%m%d")
f = open(dtLog,"a")
while True:
dt = datetime.datetime.now()
print('{:%Y-%m-%d %H:%M:%S}'.format(dt))
f.write('{:%Y-%m-%d %H:%M:%S}'.format(dt))
f.write('\n')
time.sleep(5)
输出将以突发形式到达(正在缓冲)。将睡眠设置为 0.01
后,我大约每 2 秒就会爆发一次。因此,对于 5
的延迟,您获得它们的频率会大大降低。您可能还会注意到,当您终止它时,它会输出所有待处理的输出。
要使输出立即到达,请调用 f.flush()
。
我看不出前景和背景有什么区别。但是,它不应该在进入终端时缓冲标准输出。