在Python解释器中的这些指令之后,获得一个带有绘图的窗口:
from matplotlib.pyplot import *
plot([1,2,3])
show()
# other code
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道如何继续以交互方式探索show()在程序进行进一步计算时创建的图形.
有可能吗?有时计算很长,如果他们在检查中间结果期间继续进行计算会有所帮助.
我试过这样的事情:
subprocess.Popen(['nohup', 'my_command'],
stdout=open('/dev/null', 'w'),
stderr=open('logfile.log', 'a'))
Run Code Online (Sandbox Code Playgroud)
如果父脚本正常退出,则此方法有效,但如果我终止脚本(Ctrl-C),则所有子进程也将被终止.有办法避免这种情况吗?
我关心的平台是OS X和Linux,使用的是Python 2.6 和 Python 2.7.
我在Windows 8/XP上使用Python 2.7.
我有一个程序A使用以下代码运行另一个程序B:
p = Popen(["B"], stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
return
Run Code Online (Sandbox Code Playgroud)
B运行批处理脚本C. C是一个长时间运行的脚本,我希望B退出,即使C还没有完成.我使用以下代码完成了它(在B中):
p = Popen(["C"])
return
Run Code Online (Sandbox Code Playgroud)
当我运行B时,它按预期工作.然而,当我运行A时,我预计它会在B退出时退出.但是A等到C退出,即使B已经退出了.关于发生了什么以及可能的解决方案的任何想法?
不幸的是,将A改为看起来像B的明显解决方案不是一种选择.
以下是用于说明此问题的功能示例代码:https: //www.dropbox.com/s/cbplwjpmydogvu2/popen.zip?dl = 1
任何输入都非常感谢.
当用户在 MySQL cli 中指定密码时,又名-pXXXXXX,密码参数被替换为-p******argv 数组。
因此,当有人使用 来检查进程列表时ps,他们看不到密码。
我如何在 Python 中做同样的事情?这显然不起作用
for arg in sys.argv[1:]:
arg = ""
Run Code Online (Sandbox Code Playgroud) 我在一个函数中有一些耗时的任务,并且我希望该函数即使在主进程退出后也能运行。
代码示例:
def do_time_consuming_thing():
// do time consuming task here
time.sleep(30)
def worker():
print "start a child process:"
p = multiprocessing.Process(target=do_time_consuming_thing,args=())
p.start()
print "child pid:%d" % p.pid
sys.exit(0) // main process exit here.
def test():
worker()
Run Code Online (Sandbox Code Playgroud)
但是当我在 shell 命令行中运行上述代码时,在子进程完成之前我无法返回到命令行提示符。
如何在 sys.exit(0) 完成后立即返回到命令行提示符。