无法在同一脚本中运行两个exe文件

问题描述 投票:1回答:2

抱歉,我是python的新手,我似乎无法使此代码正常工作。我希望这些exe程序一起弹出。这些exe程序是临时的流行图像,由于存在循环,因此无法关闭。而且因为它们处于循环中,所以我认为它会停止其余代码的工作。我应该如何解决?线程???

这里是代码照片链接

https://i.stack.imgur.com/g8b69.png

python exe
2个回答
0
投票

尝试更改

subprocess.call()

subprocess.Popen()

。call()等待脚本to run


0
投票

根据我的理解,您正在尝试并行运行两个文件,但是您只能运行第一个文件,因为第一个程序循环了无数次。

如果是这种情况,则可以并行运行它们。

在我的示例中,我试图监视FTP目录中根服务器中的其他目录,如果存在,则创建一个python脚本并打开一个新的命令提示符窗口,然后在该窗口中运行python脚本。

import os
import config
import ftplib
import multiprocessing
from time import sleep

server = ftplib.FTP()
server.connect(config.ftp_server_address, config.ftp_server_port)
server.login(config.ftp_server_username,config.ftp_server_password)

def change_directory_monitor(dir='./'):
    ls_prev = set()
    while True:
        ls = set(server.nlst(dir))
        add, rem = ls-ls_prev, ls_prev-ls
        if add or rem: yield add, rem
        ls_prev = ls
        sleep(5)

def worker(directory):
    os.system('cmd /k "python ' +directory + '.py"')

root_directory = list()
jobs = list()

if __name__ == '__main__':
    for added_directory, removed_directory in change_directory_monitor():
        for directory in added_directory:
            start = open("monitor_start.txt", "r")
            intermid = open("monitor_intermid.txt", "r")
            end = open("monitor_end.txt", "r")
            text = start.read() + "'" +directory + "'" + intermid.read() + "'" + directory[1:] + "/'" + end.read()
            os.chdir('./directory_monitors')
            file = open(directory + '.py','w')
            file.write(text)
            file.close()
            p = multiprocessing.Process( target = worker, args = (directory,) )
            p.start()
            os.chdir('..')
    server.quit()
© www.soinside.com 2019 - 2024. All rights reserved.