我将运行时变量从命令提示符传递给python以在那里执行(im = n python)。现在我想存储python程序的结果并将这些结果重新用于命令提示符。样品如下
set input=
set /P input=Enter Layer Name:%=%
C:\Python27\python.exe F:\xampp\htdocs\flood_publish\projection_raster.py %input%
我将用户输入字符串从命令提示符传递给python程序,如上所述。 如何使用python程序的结果返回命令提示符
答案 0 :(得分:1)
如果有帮助,请告诉我。
python文件代码(c.py):
import sys
print('You passed ',sys.argv[1])
Windows批代码(a.bat):
@echo off
set input=
set /P input=Enter Layer Name:%=%
(python c.py %input%) > tmp.txt
set /P output=<tmp.txt
echo %output%
批量代码输出:
C:\Users\dinesh_pundkar\Desktop>a.bat
Enter Layer Name:Dinesh
You passed Dinesh
C:\Users\dinesh_pundkar\Desktop>
答案 1 :(得分:0)
视情况而定。如果您的Python代码正在退出某个值(使用exit(<returncode>)
),则可以从%ERRORLEVEL%
环境变量中检索它。
<yourpythoncommand>
echo Return code: %ERRORLEVEL%
如果您愿意捕获并处理标准输出,则需要使用FOR
循环:
FOR /F "delims=" %%I IN ('<yourpythoncall>') DO CALL :processit %%I
GOTO :EOF
:processit
echo Do something with %1
GOTO :EOF
现在,如果您不想逐行处理输出,最简单的方法是将输出重定向到临时文件。
<yourpythoncommand> >%TEMP%\mytempfile.txt
<do something with %TEMP%\mytempfile.txt>
del %TEMP%\mytempfile.txt
答案 2 :(得分:-1)
假设它是一个调用python函数的bash脚本,它应该像:
function callPython()
{
local pythonResult=<code for calling python>
echo $pythonResult
}
local pythonReturnOutput = $(callPython)
现在可以使用pythonReturnOutput。
如果你没有使用bash,shell脚本,这个答案可能不正确。但是,我强烈建议有一个脚本,如果它还没有。