fix: read exe return result with output to file
This commit is contained in:
parent
9e865a4e19
commit
003732cd32
|
@ -64,12 +64,23 @@ def exeNoWait(file):
|
||||||
return exe(cmd)
|
return exe(cmd)
|
||||||
|
|
||||||
# run return output and error
|
# run return output and error
|
||||||
def run(command, timeout = 10):
|
def run(command, show=True):
|
||||||
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
# out to file
|
||||||
process.wait(timeout)
|
id = time.clock_gettime_ns(time.CLOCK_REALTIME) % 100000
|
||||||
|
out = f"out_{id}.txt"
|
||||||
|
err = f"err_{id}.txt"
|
||||||
|
|
||||||
|
ret = exe(command + f" 1>{out} 2>{err}")
|
||||||
|
|
||||||
output = process.stdout.read().decode(encoding="gbk")
|
# read from file
|
||||||
error = process.stderr.read().decode(encoding="gbk")
|
output = readFileContext(out)
|
||||||
|
error = readFileContext(err)
|
||||||
|
|
||||||
|
# del
|
||||||
|
if os.path.exists(out):
|
||||||
|
os.remove(out)
|
||||||
|
if os.path.exists(err):
|
||||||
|
os.remove(err)
|
||||||
|
|
||||||
return output, error
|
return output, error
|
||||||
|
|
||||||
|
@ -84,4 +95,25 @@ def runRetList(command, timeout=10):
|
||||||
#
|
#
|
||||||
|
|
||||||
def delFile(file):
|
def delFile(file):
|
||||||
return exe(f"rm -rf {file}")
|
return exe(f"rm -rf {file}")
|
||||||
|
|
||||||
|
def readFileContext(filename):
|
||||||
|
file = open(filename)
|
||||||
|
context = file.read()
|
||||||
|
file.close()
|
||||||
|
return context
|
||||||
|
|
||||||
|
def writeFileContext(filename, context):
|
||||||
|
file = open(filename, "w")
|
||||||
|
file.write(context)
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
def appendFileContext(filename, context):
|
||||||
|
global resultContext
|
||||||
|
resultContext += context
|
||||||
|
try:
|
||||||
|
file = open(filename, "a")
|
||||||
|
wsize = file.write(context)
|
||||||
|
file.close()
|
||||||
|
except:
|
||||||
|
print(f"appand file error context={context} .")
|
Loading…
Reference in New Issue