如何在命令提示符中存储 python 程序的输出?
How to store output of a python program in command prompt?
我正在将 运行 时间变量从命令提示符传递到 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 程序的结果用回命令提示符
假设它是您调用 python 函数的 bash 脚本,它应该像这样完成:
function callPython()
{
local pythonResult=<code for calling python>
echo $pythonResult
}
local pythonReturnOutput = $(callPython)
您现在可以使用 pythonReturnOutput。
如果您没有使用 bash、shell 脚本,此答案可能不正确。但是,我强烈建议您准备好脚本,如果还没有的话。
如果有帮助请告诉我。
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>
视情况而定。如果您的 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
我正在将 运行 时间变量从命令提示符传递到 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 程序的结果用回命令提示符
假设它是您调用 python 函数的 bash 脚本,它应该像这样完成:
function callPython()
{
local pythonResult=<code for calling python>
echo $pythonResult
}
local pythonReturnOutput = $(callPython)
您现在可以使用 pythonReturnOutput。
如果您没有使用 bash、shell 脚本,此答案可能不正确。但是,我强烈建议您准备好脚本,如果还没有的话。
如果有帮助请告诉我。
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>
视情况而定。如果您的 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