ich habe mal wieder ein "unlösbares" Problem und zwar :
Ich möchte eine Versionsnummerabfrage machen, dazu folgender Code:
Code: Alles auswählen
class ExeWrapper():
def __init__(self, PI_Exe):
self.exename = PI_Exe
self.args = []
self.proc = 0
self.stdoutput = []
self.stderr = []
def AddArg( self, PI_Arg ):
self.args.append( PI_Arg )
def Run(self):
args = []
args.append( self.exename )
args.extend( self.args )
self.proc = subprocess.Popen( args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
self._ReadStdOutErr()
def _ReadStdOutErr(self):
for line in self.proc.stdout:
print( "Line: ", line.rstrip() )
self.stdoutput.append( line.rstrip() )
#self.stdoutput = [line.rstrip() for line in self.proc.stdout]
self.stderr = [line.rstrip() for line in self.proc.stderr]
def GetStdOut(self):
txt=""
#print(self.stdoutput)
#print(txt)
#txt.join( self.stdoutput )
for ll in self.stdoutput:
txt = txt + str(ll)
return txt
def GetStdErr(self):
return "\n".join( self.stderr )
def ShowCommand(self):
args = [ self.exename ]
args.extend( self.args )
print ( '|'.join( args ) )
#--------------------------------------------------------------------------------
oProg = ExeWrapper( "C:/tmp/GetVersionInfo.exe" );
oProg.AddArg( "-?" )
#oProg.AddArg( "hierist derpfadzur.exe" )
oProg.ShowCommand()
oProg.Run()
print( oProg.GetStdOut() )
Line: b'GetVersionInfo - Retrieve information about an exe/dll file'
Ich vermute, dass das 'b' für binary steht.
In der Version 2.5 tritt dieses Problem nicht auf, jedoch in 3.1
Ich habe wirklich keine Ahnung wie ich das simpel wegbekommen.
Vielen Dank im Voraus für diese Mühe