I hope verything is going well.
I was hoping you can guide me. I would like to open multiple databases at once. Since I run many analysis, I'm experience several time to extract the result. I tried this:
Code: Select all
import os
import itertools
from concurrent.futures import ProcessPoolExecutor
from time import sleep
import importlib
import ThreadUtils
importlib.reload(ThreadUtils)
import ThreadUtils as tu
from PySide2.QtCore import Qt, QObject, Signal, Slot, QThread,QEventLoop
from PySide2.QtWidgets import QMessageBox, QApplication
from PyMpc import *
from PyMpc import MpcOdbVirtualResult as vr
import shutil
import glob
import multiprocessing
import numpy
from PySide2.QtCore import Qt
from PySide2.QtWidgets import (
QApplication,
QDialog,
QVBoxLayout,
QProgressBar,
QLabel,
QListWidget,
QListWidgetItem,
QDialogButtonBox,
QMessageBox,
QInputDialog,
QFileDialog,
)
def files_(inifile):
out = []
for i in inifile:
values = [os.path.join(i,j) for j in os.listdir(i)]
out.append(values)
output = sum(out, [])
return output
#Limpiar terminal
App.clearTerminal()
doc = App.postDocument()
#### Datos de entrada
name_1 = 'rotation_outputs'
name_2 = 'rotation_sp_stko.txt'
ini_path = r'D:\rocking_\1._0.05\3._12levels\Active_Shallow'
folders_ni = [os.path.join(ini_path,i) for i in os.listdir(ini_path) if os.path.isdir(os.path.join(ini_path, i))]
fullpaths = files_(folders_ni)
files = []
db_id_to_close = []
for jindex,jitem in enumerate(fullpaths):
os.chdir(jitem)
for fileitem in glob.glob("*.mpco"):
location = jitem + '\\' + fileitem
files.append(location)
def open_database(filename):
"""Función que abre la base de datos"""
App.runCommand('OpenDatabase', filename)
def Parallel_Analysis():
with ProcessPoolExecutor() as executor:
### submit all tasks
for parameter in files:
p = executor.submit(open_database,parameter)
if __name__ == '__main__':
Parallel_Analysis()
All the best,
Salvador