Итак, я пытаюсь выполнить файл и получить возвращенное значение, используя встроенные методы python, доступные в библиотеке подпроцесса.
Например, допустим, я хочу выполнить этот файл python hello_world:
def main():
print("in main")
return("hello world!")
if __name__ == '__main__':
main()
Меня не волнует возвращение заявления in main
. То, что я хочу вернуть, это возвращаемое значение hello world!
.
Я пробовал множество вещей, но ни одна из них не сработала.
Вот список того, что я пробовал, и их вывод:
args является общим для всех испытаний:
args = ['python',hello_cmd]
Первое испытание:
p1 = subprocess.Popen(args, stdout=subprocess.PIPE)
print(p1.communicate())
print("returncode is:")
print(p1.returncode)
вывод:
(b'in main\n', None)
returncode is:
0
второе испытание:
p2 = subprocess.check_output(args,stderr=subprocess.STDOUT)
print(p2)
вывод:
b'in main\n'
третье испытание:
output, result = subprocess.Popen(args, stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=False).communicate()
print(output)
print(result)
вывод:
b'in main\n'
b''
четвертое испытание:
p4 = subprocess.run(args, stdout=PIPE, stderr=PIPE)
print(p4)
вывод:
CompletedProcess(args=['python', '/path/to/file/hello.py'], returncode=0, stdout=b'in main\n', stderr=b'')
пятое испытание:
p5 =subprocess.getstatusoutput(args)
print(p5)
вывод:
(0, '')
Может кто-нибудь помочь?