diff --git a/pym/cl_profile.py b/pym/cl_profile.py index c75613e..8d999c6 100644 --- a/pym/cl_profile.py +++ b/pym/cl_profile.py @@ -21,7 +21,7 @@ import stat import re import xml.dom.minidom from xml import xpath -import popen2 +import subprocess import types import copy import random @@ -1854,7 +1854,10 @@ class _file(_error): nameFile = self.nameFileNew if profile=="Old" and self.nameFileOld: nameFile = self.nameFileOld - fout, fin = popen2.popen2("file %s"%(nameFile)) + sp = subprocess.Popen("file '%s'"%nameFile, stdin=subprocess.PIPE, + stdout=subprocess.PIPE, close_fds=True, + shell=True) + fout, fin = (sp.stdout, sp.stdin) fin.close() textLine = fout.readline() fout.readlines() diff --git a/pym/cl_utils.py b/pym/cl_utils.py index 2052157..a82481b 100644 --- a/pym/cl_utils.py +++ b/pym/cl_utils.py @@ -20,7 +20,7 @@ from random import choice from re import search, compile, S import os import types -import popen2 +import subprocess def getdirlist(s_path): #Получить список директорий по указаному пути @@ -268,19 +268,26 @@ def runOsCommand(cmd, inStr=None, ret_first=None): """Выполняет внешнюю программу Параметры: - cmdStrProg внешняя программа + cmd внешняя программа inStr данные передаваемые программе на страндартный вход. ret_first вернуть только первую строку Возвращаемые параметры: строка/строки которую выведет внешняя программа """ - fout, fin = popen2.popen4(cmd) + pipe = subprocess.Popen(cmd, stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + close_fds=True, + shell=True) + fout, fin, ferr = (pipe.stdout, pipe.stdin, pipe.stderr) # если есть данные на вход, передать их if inStr: fin.write(inStr) fin.close() res = fout.readlines() fout.close() + res += ferr.readlines() + ferr.close() if res: if len(res) > 1: if ret_first: