我需要在终端中多次运行 Python脚本。此脚本要求我导入一些库。因此,每次我在终端中调用脚本时,都会再次加载库,这会浪费时间。一开始我有什么办法可以一劳永逸地导入库吗? (如果我尝试“天真”的方式,首先调用一个脚本只是为了导入库,然后运行我的代码,则它将不起作用)。
编辑:我需要在终端中运行脚本,因为实际上它是在Java开发的另一个程序中提供的。 Java代码在终端中调用Pythin脚本,读取其结果并进行处理,然后再次调用。
答案 0 :(得分:1)
脚本完成后,库将被卸载,因此处理此问题的最佳方法是编写脚本,以便它可以进行任意多次迭代,而不是多次运行整个脚本。我可能会使用input()(或者如果运行Python2,则使用raw_input())来多次读取您想要对其进行迭代的内容,或者使用诸如click之类的库来为其创建命令行参数。
答案 1 :(得分:1)
一种解决方案是,您可以使python脚本始终运行,并使用管道在进程之间进行通信,例如以下this答案中的代码。
import os, time
pipe_path = "/tmp/mypipe"
if not os.path.exists(pipe_path):
os.mkfifo(pipe_path)
# Open the fifo. We need to open in non-blocking mode or it will stalls until
# someone opens it for writting
pipe_fd = os.open(pipe_path, os.O_RDONLY | os.O_NONBLOCK)
with os.fdopen(pipe_fd) as pipe:
while True:
message = pipe.read()
if message:
print("Received: '%s'" % message)
print("Doing other stuff")
time.sleep(0.5)