-1

python.py ファイルからの出力を txt に出力したいので、次のコードを使用します。

python program.py > output.txt

それはコマンドラインで行います。

問題は、出力の 90% しか印刷されないことです。プログラムが長すぎるように思われるので、とにかく、すべての出力を txt に印刷する方法はありますか? 何かのようなもの:

python program.py > output.txt 1000 lines

そのコード: http ://pastebin.com/2bSiGKx8

THATS WHAT IT PRINTS : http://pastebin.com/r00JteMG

4

3 に答える 3

1

プログラム内でsys.stdout、ファイル オブジェクトにリダイレクトできます。

import sys
orig_sys = sys.stdout
with open('output.txt','w') as out:
    sys.stdout = out
    #your code here
    print "foo"
    print "bar"

または、コマンド ライン引数からファイル名を渡します。

#run this as: python program.py output.txt
import sys
filename = sys.argv[1]
orig_sys = sys.stdout
with open(filename,'w') as out:
    sys.stdout = out
    #your code here

しかしpython program.py > output.txt、コードに問題がある可能性もあります。

于 2013-06-30T21:12:47.427 に答える
0

おそらく、あなたが遭遇している問題は、program.py が stdout ('>' を使用して output.txt に移動するために機能します) と stderr (' を使用して output.txt ファイルに移動しない) の両方に出力していることです>' ですが、代わりに '2>' を使用するとその中に入ります)。あなたがやろうとしていることに対する答えについては、この質問を参照してください: How can I redirect and append both stdout and stderr to a file with Bash?

于 2013-06-30T21:12:39.393 に答える