我正在Raspberry Pi上运行一个Python脚本,但在print()
调用时出现间歇性的冻结。脚本只会偶尔冻结,当有人关注终端并按下"Enter"按钮或按下ctrl+c时才会继续运行。
我猜测问题在于print()
调用正在等待从终端获得某种响应,而用户进行了意外操作时(例如高亮文本、右键拖动或其他未知操作),它无法获取响应(我无法复制这些操作)。需要明确的是,在这种情况下,脚本会无限期地挂起,而不是直接下方的time.sleep()调用中指定的120秒。
我的问题是:有没有可以在Python中使用的print()
调用,它不会等待从控制台返回响应,以便在像上面那样的未知情况下不会冻结?
我已经将代码放在下面,尽管它具体做什么与问题不太相关。
while True:
directory_pump_files = glob.glob("./pumplog*.csv") #read in some files from the file system
for file_path in directory_pump_files:
try_upload_file(file_path, pump_files_done, "/batchUpload/create") #upload the pump file
directory_log_files = glob.glob("./log*.csv")
for file_path in directory_log_files:
try_upload_file(file_path, log_files_done, "/batchUpload/SensorReadings") #upload the log file
print ("sleep")
time.sleep(120)
print
调用后跟着一个time.sleep
。是不是sleep
导致你的程序暂停和"冻结"了一段时间? - Gino Mempinprint()
仍然会被阻塞。真正的问题是缓冲区的使用者。 - DisappointedByUnaccountableMod