gpt4 book ai didi

python - 使用 Tee-Object 将 python 脚本的结果输出到终端和文件

转载 作者:行者123 更新时间:2023-12-01 01:56:28 25 4
gpt4 key购买 nike

问题是我无法使用 Tee-Object 将 Python 脚本的输出记录到终端和文件。

我有多个包含数据行的文件。我需要通过向服务器发出 HTTP 请求来验证此数据。有 8 个大文件,考虑到我预计这将需要一天的时间才能运行,因为我不想淹没服务器。

  1. 导入文件字符串并运行 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
  2. 我认为附加的 > Tee-Object -FilePath .../bunnyrabbit.txt 应该立即创建文件并以持续的方式写入?

    我需要能够在程序运行时检查输出是否正常。

附加:过滤输出

脚本每行的输出只是“x 是正确的”或“x 是不正确的”。如果我想将所有正确的内容过滤到一个文件中,将不正确的内容过滤到另一个文件中,该怎么做?

我最初的计划只是重新读取 python 中的输出文件并用我知道的语言来完成。

最佳答案

您将需要 | 管道运算符,而不是 > 重定向运算符。

此外,可以将 Tee-Object 移动到 foreach 主体内并使用 -Append 开关,或者更改脚本以使用 ForEach-Object cmdlet 而不是循环语句 as suggested by Ansgar Wiechers :

$db = Import-Csv C:\Users\xxxx\documents\bunnies\foo.txt
foreach ($i in $db.StringName) {
& py -2.7 myscript.py -option $i |Tee-Object -FilePath ..\bunnyrabbit.txt -Append
}

$db = Import-Csv C:\Users\xxxx\documents\bunnies\foo.txt
$db.StringName |ForEach-Object {
& py -2.7 myscript.py -option $_
} |Tee-Object -FilePath ..\bunnyrabbit.txt

关于python - 使用 Tee-Object 将 python 脚本的结果输出到终端和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50124738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com