2012-02-21 5 views
0

私はPythonには新しく、モデル出力ファイルから出力ファイルを整理したpythonコードに関する質問があります。このコードはMacユーザー向けに書かれていますが、今はWindowsで実行したいと考えています。しかし、エラーメッセージが表示されます。このコードをWindowsで使用できるように変換する手助けをしてください。ありがとう。Mac用のPythonコードをWindows用に変換する

import sys 

if len(sys.argv) > 1: 
    fileName = sys.argv[1] 
else: 
    print "selected_um_b.out" #insert file name here 
    sys.exit() 

f = open(fileName) 
counter = 0 

fw = open(fileName+".cleaned", 'w') 

for line in f: 
    line = line.strip() 
    counter = counter + 1 
    if counter <= 4: 
     fw.write(line+"\n"); 
     continue 
    values = line.split("\t") 
    if (values[4].strip() == "-99" or values[5].strip() == "0"): continue 
    fw.write("\t".join(values)+"\n") 

f.close() 

更新

エラーメッセージは次のとおりです。

Traceback (most recent call last): File "C:\trial_batch\clean_output.py", line 7, in sys.exit() SystemExit

+1

詳細情報を追加する場合は、今後、_edit_質問してください。 –

+0

@TimPost:ありがとう。私はそれを行う方法に精通していませんでした。どうもありがとう。 –

+2

心配はいりません。これは今答えることができるようですが、あなたの質問が開いている間に頻繁にコメントに注意を払い、問題に対処するためにあなたの質問を編集してください:) –

答えて

1

プログラムは、あなたがそれを実行し、コマンドラインでファイル名を期待しています。あなたが提供していないと思われるので、プログラムは終了しました(sys.exit()コールがプログラムを終了します)。

どのように使用しようとしていますか? 1つのファイルだけを変換したい場合は、ファイルとPythonスクリプトを同じディレクトリに置きます。 3行目から7行目をfilename = "yourfilename.typ"に置き換えます(行をインデントしないでください)。ファイル(私の例では "yourfilename.typ")を読み込み、ファイル名に 'cleaned'という出力ファイルを書き出します。

+2

しかし、少し奇妙です。 sys.exit()を呼び出すとSystemExit例外が発生し、インタープリタは停止しますが、通常の場合はトレースバックを出力する必要はありません。 –

+0

@Art Swri:ありがとうございます。あなたの提案に基づいてコードを修正し、コードとファイルを同じディレクトリに配置しました。私のファイル名はamd_ex3です。トレースメッセージ(最後の最新のコール): ファイル "D:\ Python \ Bart \ bart.py"、行17、 f = open(amd_ex3.dat) NameError:name 'amd_ex3'定義されていません –

+0

@Art Swri:このコードを使用して1つのファイルを変換しています。 –