2016-08-07 1 views
0

はシェルのようにファイルのPythonの標準出力を保存するためのショートカットがあります。python stdoutとstdinの両方をbashだけを使ってファイルに保存する方法はありますか?

python code.py > file 
python code.py >> file 
python code.py &> file 

しかし、これはUbuntuのでは16.04 LTSのために、私は端子を介して入力し、標準入力を保存しません。 シェルコマンドだけを使用してPythonスクリプトを実行し終わったときに端末が表示されるようにテキストを保存する方法はありますか?

+4

おそらくこれはあなたが探しているものです:sys.stdinをについて、あなたはループ内で使用することができますどのようなhttp://man7.org/linux/man-pages/man1/script.1.html –

+0

とstdinを読んでstdoutを書く –

+0

@ReutSharabani私のコードでは、プログラムから 'KeyboardInterrupt'を呼び出す必要があり、スクリプトはファイルに保存しませんでした。だから私は、フラッシュのために '-f'フラグを使いました。それは正常に保存されましたが、 'cat typescript'だけが端末で適切な結果を出します。ファイルがテキストエディタで開かれても、utf-8出力(私の端末のエンコーディング)は得られません。印刷できない文字(TAB、ESCなど)のハードコーディングされたテキスト要素があります。 utf-8はどのように入手できますか? –

答えて

1

あなたがscript使用することができ、端末との相互作用を記録したい場合:

スクリプトが端末に表示すべての写し(typescript)を作成します。 対話セッションのハードコピー記録を必要とする学生は、後でlsc(1)でタイスクリプトファイル を印刷することができるので、割り当ての証明として役立ちます。

引数ファイルが指定されている場合、スクリプトはこの
ファイルにダイアログを保存します。ファイル名が指定されていない場合、ダイアログはファイル
typescriptに保存されます。

0

変数にstdinを保存し、この変数をテキストファイルに書き込んで、この変数を使用するプログラムにこの変数を渡すことができます。

read input 
$input > textfile 
$input | program 
+0

コード –

+0

の実行と同じように、stdout、stdin、およびstderrの出力を順番どおりにしたいので、基本的に端末のプロトコルが必要ですか? – eheller

関連する問題