bat获取python文件的返回值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat获取python文件的返回值?相关的知识,希望对你有一定的参考价值。

test.py文件中只有一句print('hello world')
在bat文件中怎么执行python test.py能够获取到hello world
求解

参考技术A 你要说具体一点,你的需求太另类了。
获取到的信息你要放在哪呢,是要做什么处理?
如果你是要用另一个程序接收,那是python与另一个程序的通讯问题。
如果只是保存到哪个文件,你的python程序就可以完成。追问

在bat文件中获取到python test.py返回值后将这个值继续返回
即A.bat中执行python test.py并获取其返回值helloworld,并将其返回,B.py调用A.bat,获取A.bat的返回值helloworld(B.py可以执行python test.py并获取返回值,这我知道,我只是想要bat这种方式运行方式)

追答

你这个不叫返回值了,你这个是控制台的输出信息。
B.py中用subprocess.Popen调用a.bat,调用后会返回一个对象(比如用res接收这个对象),然后就可以用res.stdout.read(),读取print出来的信息。

参考技术B @echo off
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "pyfile=test.py"
if not exist "%pyfile%" (echo;"%pyfile%" not found&pause&exit)
for /f "delims=" %%a in ('python "%pyfile%"') do set s=%%a
echo;output:%s%
pause
exit
参考技术C python本质上是一个单独进程,所以你的问题实际上和python没什么关系
搜索: bat 批处理 获取其他进程输出
或者
bat 进程输出重定向追问

只是以python为例

python 获取另一个py文件 中函数的返回值

如a.py 文件有一个全局变量或函数中的局部变量a = bool,函数test的作用是a = True 或再加上 return a
b.py 通过os.system("python a.py")的方式去运行a.py,然后我希望能获取a.py运行后a的值,该如何去获取?
(实际中我a.py是python的unittest脚本)

参考技术A

a.py

def test():
    return True

b.py

import a
print(a.test())

本回答被提问者和网友采纳

以上是关于bat获取python文件的返回值?的主要内容,如果未能解决你的问题,请参考以下文章

bat脚本获取 exe返回值 ErrorLevel 的参数和设定

bat查询注册表后的返回值记录

java调用shell脚本,并得到shell脚本的返回值

python 获取另一个py文件 中函数的返回值

c++如何获取dos命令的返回值

在批处理中调用VBScript(支持获取返回值)