2016-03-29 17 views
-2

私は新しいプログラマーなので、簡単に私はYouTubeでビデオを見て、そのほとんどを理解しています。何が間違っているかもしれないというあなたにpythonの.txtファイルに書き込もうとしています

私は

import logging 
import csv 

Date = input ('what date was it?') 
fish = input ('what type of fish did you catch?') 
fly = input ('what fly did you catch the fish on?') 
water = input ('what was the water conditions?') 

fileName = 'fish.txt' 
WRITE = 'w' # write rebuilds the file, so nothing is in the file! 
READ ='r' 
APPEND = 'a' 
ReadWrite = 'w+' 

file = open('fileName', 'a') 
file.write (Date + "\n") 
file.write (fish + "\n") 
file.write (fly + "\n") 
file.write (water + "\n") 

allFileContents = fileName.read() 
print (allFileContents) 

file.close() 

を実行しようとすると、私はエラーを取得を飛び出すのでしょうか?

+0

エラーを知っていましたか? Pythonは非常に良い理由のためにトレースバックを提供します:デバッグに役立つ* verrrrrrry *です。 – zondo

+0

文字列、変数名、およびファイルオブジェクトが混乱しています。私はあなたが勉強を続けることをお勧めします - SOはチュートリアルのサービスではないので、あなたの最初のものではなく、あなたの最後の手段であるべきですか? – TigerhawkT3

+0

SOはチュートリアルサービスではないため、この質問を議論の対象外としています。 – TigerhawkT3

答えて

3

あなたが実際にここにあなたのファイルを開いていません。

allFileContents = fileName.read() 

fileNameを文字列として単にファイル名で、あなたはopenを使用したい:

allFileContents = open(fileName).read() 

さらに、あなたが実際にしようとしていますファイル名fileNameに書き込む:

file = open('fileName', 'a') 

しかし、あなたが作成した変数を実際に参照したいと思うと思います。fileNameだから、あなたが欲しい:

file = open(fileName, 'a') 

あなたのコードについてのご意見をお待ちしています。ここで

は、ファイルを開くときに異なるモードを保持する変数を作成しているように見える:

WRITE = 'w' # write rebuilds the file, so nothing is in the file! 
READ ='r' 
APPEND = 'a' 
ReadWrite = 'w+' 

あなたはあなたのコードでこれを使用していない、と正直に言うと、本当に一般的に有用ではありません。 openメソッドを呼び出すときには、これらを直接使用することができます。だから、あなたはそれらなしで行うことができます。

最後に、あなたが使用していないことをimport文を持っているように見える:

import logging 
import csv 

一般的に、それはあなたが使用していないモジュールをインポートすることを避けるために常に最善です。 の後にで使用する場合は、実際に必要なときにインポートすることをお勧めします。

+0

コードスニペットからわかるように、両方のインポートはこの場合不要です。この場合、write =、read =、append =も有用なコードよりもコメントに似ています。 – Lost

+0

@Lost私は同意します。私は即刻の修正を提供したかったのです。しかし、はい、コードを改善するための他のコメントがあります。 – idjaw

+0

コンサルタントは、おそらくエラーを引き起こしていたものを修正しました。ほとんどの場合、「間違っている可能性のあるもの」でしたが、重複した回答を追加したくない最終的な質問から取り組んでいます – Lost