【发布时间】:2013-04-05 18:03:58
【问题描述】:
您好,我正在尝试多次运行脚本,但我希望这可以同时发生,据我所知,我是一起使用子进程和线程 但是,当我运行它时,它看起来仍然是按顺序执行的,有人可以帮助我,以便我可以让它一遍又一遍地同时运行相同的脚本吗? 它实际上是否有效并且真的很慢?
edit 现在忘记了最后一段代码
这是我目前所拥有的
import os
import datetime
import threading
from subprocess import Popen
today = datetime.date.today()
os.makedirs("C:/newscript_image/" + str(today))
class myThread(threading.Thread):
def run(self):
for filename in os.listdir('./newscript/'):
if '.htm' in filename:
name = filename.strip('.htm')
dbfolder = "C:/newscript/db/" + name
os.makedirs(dbfolder)
Popen("python.exe C:/execution.py" + ' ' + filename + ' ' + name + ' ' + str(today) + ' ' + dbfolder)
myThread().start()
【问题讨论】:
-
他们需要如何“同时”? subprocess 将愉快地异步执行进程。
-
我认为您可能没有那里的所有代码。这会创建一个线程类,但实际上并不运行线程。看起来你也可以直接在 execution.py 中调用你需要的任何函数,而不是通过新的 python.exe 解释器调用它。
-
@MichaelGreene 感谢您指出我确实在我的代码底部有 myThread.start 只是忘了包含它,所以我的线程现在应该在 execution.py 脚本中完成脚本也只是运行另一个带有一些参数的脚本,例如 script1.py param1 然后下一行将是 script1.py param2 等等
标签: python asynchronous python-2.7 subprocess python-multithreading