【发布时间】:2018-10-11 23:29:32
【问题描述】:
问题是我无法使用Tee-Object 将 Python 脚本的输出记录到终端和文件中。
我有多个包含数据行的文件。我需要通过对服务器的 HTTP 请求来验证这些数据。有 8 个大文件,考虑到我希望这需要一天的时间才能运行,因为我不想淹没服务器。
-
导入文件字符串并运行 Python 脚本正在向终端生成输出。完成如下:
$db = Import-Csv C:\Users\xxxx\documents\bunnies\foo.txt foreach ($i in $db.StringName) { & py -2.7 myscript.py -option $i }$db是文件。$i是文件中的字符串(行)。脚本打印到终端。由于输出将超过几天,我需要知道它会被记录下来。
Tee-Object在输出一个小时后还没有创建文件。foreach ($i in $db.StringName) { & py -2.7 myscript.py -option $i } > Tee-Object -FilePath .../bunnyrabbit.txt -
我假设附加的
> Tee-Object -FilePath .../bunnyrabbit.txt应该立即创建文件并以持续的方式写入?我需要能够在程序运行时检查输出是否正常。
附加:过滤输出
脚本每行的输出只是“x 正确”或“x 不正确”。如果我想将所有正确的过滤到一个文件中,而将不正确的过滤到另一个文件中,该怎么办?
我最初的计划只是用 python 重新读取输出文件,并用我知道的语言来做。
【问题讨论】:
-
> Tee-Object->| Tee-Object,你需要用ForEach-Object替换你的foreach循环 b/c 前者不会写入管道。 -
嗨,谢谢你这么快。我现在有一个错误'unexpected token'in'':
foreach-object($i in $db.Email){& py -2.7 gxlu.py -s $i} | Tee-Object -.... -
ForEach-Object不是foreach的直接替代品。 Related.
标签: python powershell output