Powershell执行python:仅重定向打印语句?

时间:2017-07-13 02:05:18

标签: python powershell redirect output

Powershell中是否有办法将print语句从python一个地方重定向到return语句到另一个地方?

例如我正在尝试

$ python myPythonScript.py args >> logFile

我在我的日志文件中输出了print语句(虽然它看起来很糟糕,清理将是下一个工作)

但是,我没有从输出中的python中获取return语句值。如果我使用*>>

,我也不会抓住它们

任何想法发生了什么?

Python示例:

def main(args)
     print "This goes to file"
     #parse flags...
     #do something here...
     MyVar = "Please " + "Work"

     return MyVar #doesn't go anywhere
if(__name__ == '__main__':
     main(sys.argv)

1 个答案:

答案 0 :(得分:1)

程序(或退出代码)的返回值只能是整数,而不是字符串。

首先,确保返回一个int,或者执行 var marker = createMarker(point,"This place","Some stuff to display in the<br>First Info Window") var marker = createMarker(point,"That place","Some stuff to display in the<br>Second Info Window") ... ,其中n是一个int。

您可能还想修复:

exit(n)

然后,您可以使用if(__name__ == '__main__'): return main(sys.argv)

访问Powershell中程序(脚本)的返回值

如果你真的想要PowerShell使用一个字符串,你应该:

  1. 在stderr而不是stdout上打印日志
  2. 在执行结束时在stdout上打印文件名
  3. 如果你想要重定向,
  4. 将stderr重定向到你的日志文件,stdout重定向到powershell管道echo %errorlevel% - 或者你可以在括号|中执行python脚本,这样结果就可以在命令行上使用