2012-04-10 11 views
0
def ConvertFile(): 
    FileNameIn = 'Hexdata.dat' 
    HexFile = open(FileNameIn, 'r') 
    for Line in HexFile: 
    print (Line) 
    print (Binary(Line)) 
    HexFile.close() 

これまでのところ、プログラムを実行すると、ファイルの16進数がバイナリに変換されています。これは私がやりたいことは、私はコードでこれに近づくだろうかBinarydata.datテキストファイルにデータを保存する

と呼ばれるファイル

にバイナリ出力を保存しているHexdata.dat

というファイルにありますか?私はPythonで新しく、これを適切にカバーしていないことに注意してください。私はさまざまなコードを試しましたが、実際にはすべて推測ですが、失敗しました。

私はあなたの問題を解決するように求めていませんが、プログラムの出力を新しいテキストファイルに保存する方法をもっと尋ねます。

答えて

3

あなたはすでにそこにいるのです。あなたはすでに読み込み用のファイルを開く方法を知っている:

HexFile = open(FileNameIn, 'r') 

'r'は「読むためのオープン」を意味します。

OutputFile = open(FileNameOut, 'w') 

そして、あなたはこのようにそれに出力を送信することができます:

print >>OutputFile, "Something to print" 

かをあなたがdocumentation for the open functionを見れば、あなたはwrを交換して書き込み用にファイルを開くことがわかりますファイルオブジェクトにwriteメソッドを使用します。

OutputFile.write("Something to print\n") 
+0

これまでのところ私は FileNameOutは=オープン 'Binarydata.dat' BinaryFile =(FileNameOut、 'W') は、私は、次のprint文を使用していますか? –

+0

しないでください。 –

0

現在、ファイルを読み取りモードで開いているため、ファイルに書き込むには、バッファモードを('w')として開きます。から引用:http://docs.python.org'r''w'に置き換えると簡単に行うことができます。複数の基準については

'w' for writing (truncating the file if it already exists 

open(name[, mode[, buffering]])

# the file name 
FileNameIn = 'Hexdata.dat' 

# create a file object: open it with "write" mode 
HexFile = open(FileNameIn,"w") 

for line in HexFile: 
    HexFile.write(Binary(line)) 

HexFile.close() 
0

を参照してくださいあなたは、ファイルに書き込むための( 'Binarydata.dat'、 'W')オープン使用してみましたか?ファイルに書き込む方法はたくさんありますが、その多くはここにあります:http://docs.python.org/tutorial/inputoutput.html

0

は(にopen functionのドキュメントを読みます書き込みモードでファイルを開く)とFile Objects(開いたファイルに情報を書き込む)。

0

このスクリプトには2つのファイルが必要です。あなたが読んでいるものと書いているもの。書き込みするファイルがopenの場合は、wb(バイナリを書き込む)オプションを使用してください。この2つのリンクは、初心者がPythonの知識をほとんどまたは全く持っていない場合に役立ちます:Intro to File ObjectsTutorial on File I/O

関連する問題