我将如何循环播放一个python文件以无限期打开另一个python文件?

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

所以我知道如何在另一个Python文件exec(open('file.py').read())中执行一个Python文件,但是我要循环的文件在该文件中具有一个while(True):循环。我想做的是循环打开包含while真正循环的文件,同时让该文件在后台运行。

打开代码:

loopCount=1
maxCount=100
while(loopcount<=maxCount):
     exec(open('whileTrue.py').read())

我认为您会执行类似的操作,但是不要打开文件,而是允许文件在后台运行,然后再次打开文件,等等;该代码将打开文件一次,然后使文件运行,直到关闭文件后才打开下一个文件。

非常感谢您提供任何帮助。

python python-3.x exec
1个回答
0
投票

首先,exec(...)命令是不安全的,应避免使用。另一种方法是将其他Python文件当作模块导入。

为了能够并行运行第二个文件,您可以使用Python内置的threading模块。

说我们有两个文件,FileA.pyFileB.py

FileA.py

import threading, FileB
for i in range(5):
    currentThread = threading.Thread(target=FileB.Begin)
    currentThread.start()

FileB.py

import time
def Begin():
    for i in range(10):
        print("Currently on the {} second...".format(i))
        time.sleep(1)

FileA.py将启动5个不同的线程,每个线程都从Begin()开始运行FileB.py功能。您可以替换Begin()函数的内容,对其进行重命名或执行任何您喜欢的操作,但是请确保更新target中的线程FileA.py

应该注意,打开太多线程是一个坏主意,因为您可能会超出计算机的内存量。除此之外,您还应确保线程最终结束而不是真正的“无限循环”,因为您可能会发现必须强制关闭FileA.py版本才能结束线程。

有关线程模块的更多详细信息,请参见python文档:https://docs.python.org/3/library/threading.html

或者您可以通过在Google上搜索Python线程来完善与该主题相关的许多指南。

我希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.