1
我想做一个后台进程,显示file
与外部viewer
。当进程停止时,它应该删除文件。 下面这段代码做我想做的事情,但它很丑,我想有一种更习惯的方式。 如果它甚至与操作系统无关,那将是完美的。popen完成后做些什么
subprocess.Popen(viewer + ' ' + file + ' && rm ' + file, shell=True)
我想做一个后台进程,显示file
与外部viewer
。当进程停止时,它应该删除文件。 下面这段代码做我想做的事情,但它很丑,我想有一种更习惯的方式。 如果它甚至与操作系统无关,那将是完美的。popen完成后做些什么
subprocess.Popen(viewer + ' ' + file + ' && rm ' + file, shell=True)
使用subprocess.call()
打开浏览器并查看文件究竟会做到这一点。随后,运行命令删除该文件。
如果您希望脚本,而正在运行的进程继续进行,使用threading
一个例子:
from threading import Thread
import subprocess
import os
def test():
file = "/path/to/somefile.jpg"
subprocess.call(["eog", file])
os.remove(file)
Thread(target = test).start()
# the print command runs, no matter if the process above is finished or not
print("Banana")
这将不正是你的描述:
eog
(查看器),等待它完成(关闭eog
)并删除该文件。
非常感谢您的回答。但在这种情况下,它不会放在后台,我无法工作。 – mcocdawc
背景是什么意思?如果您希望脚本继续,请使用'Threading' –
是的,我希望脚本继续。我可能错过了精确的词汇来严格定义它。如果我要在Linux终端上工作,我需要''''nohup bash -c'command1 && command2'&''的行为。 “Threading”真的有必要吗? – mcocdawc