2016-09-09 7 views
-1

だから私は(何それがないことは無関係です)私が書いたPythonプログラムの中にいくつかの値に入れていた。このコマンドプロンプトコマンドで私のpythonプログラム全体をどのように上書きしましたか?

E:\Users\Me\Desktop\Python>idtohex.py

Enter ID: 213467

DB 41 03

ニース、それは大丈夫動作します。今すぐこの文字列をクリップボードにコピーしました。

[Newline here]

E:\Users\Me\Desktop\Python>idtohex.py

私が最初にコマンドプロンプトでプログラムを起動していたときからです。なぜなら、改行の今

、私のプログラムがクラッシュし、それは入力(おっと)を扱うことができなかったとして:

ValueError: invalid literal for int() with base 10: ''

このため、エラーのは、私が今、コマンドプロンプトと私からの次の行に戻っていますクリップボードには、このコマンドを実行しようとしている、入力されます。

E:\Users\Me\Desktop\Python>idtohex.py

コマンドプロンプトは、私はそれは大したことではないですし、ちょうどそれに乗ると思うので、私は、このエラーを与える:

'E:\Users\Me\Desktop\Python' is not recognized as an internal or external command,

operable program or batch file.

今度はプログラムをもう一度実行しようとすると、プログラム全体が完全に空になります。 Overwritten. 0-bytes on disk。その単純な間違いで、私は何とか私のプログラム全体を上書きし、元に戻す方法がありませんでした。

どのようにhellこれはWindowsのコマンドプロンプトで実行されますか?

+0

次の行は、 'E:\ Users \ Me \ Desktop \ Python> idtohex.py'は「指定されたパスでプログラムを実行し、出力をidtohex.pyファイルに保存する」ということです。コマンドが存在しない場合、その出力は空です。したがって、.pyファイルに格納された結果は0バイトです。 – Aacini

+0

従来のコマンドプロンプトではなくIDEを使用して調査する必要があります。 –

+1

コマンドプロンプトで 'E:\ Users \ Me \ Desktop \ Python> idtohex.py'の全てを実際に入力しましたか? 'E:\ Users \ Me \ Desktop \ Python>が_prompt自体を表していることに気付かなかったのですか?あなたが端末を開いたときに見たはずのものですが、' idtohex.py'と入力するだけです。 – TigerhawkT3

答えて

5

コマンドを実行する前に、cmd.exeは子プロセスが継承する標準ハンドルを設定します。 >オペレータは、ファイルディスクリプタを出力のために開いたファイルにリダイレクトし、既存のファイルを0バイトに切り詰めます。デフォルトでは、ファイル記述子1(標準出力、またはstdout)になります。唯一の出力はファイル記述子2(標準エラー、stderr)のエラーメッセージであるため、結果のファイルは空です。 E:\Users\Me\Desktop\Python 2>idtohex.py(この場合、解析にスペースが必要です)を実行した場合、ファイルはエラーメッセージによって上書きされます。

関連する問題