2016-11-11 1 views
0

私は現在学校向けのコードを書いており、ファイルを閉じた後にファイルを再オープンする際に問題が発生しています。ファイルを書き込みで開いて閉じ、読み取りで再び開くことはできますか?

test=open('test.txt','w') 
....... 
test.close 

retest=open('test.txt','r') 

これは私が取得しています正確なエラーメッセージです:

TypeError: invalid file: <_io.TextIOWrapper name='test.txt' 
     mode='w' encoding='cp1252'> 

答えて

1

あなたはtest.close()でファイルを閉じる必要があります。 ()がなければ、test.closeは呼び出されておらず、参照されているだけで、ファイルを開いたときにファイルは開いたままです。

いっそのこと、あなたはコンテキストマネージャを使用することができますし、あなたのファイルは自動的に閉じられます。

with open('test.txt', 'w') as test: 
    ... 
with open('test.txt', 'r') as retest: 
    ... 

またはより良いまだ(あなたのユースケースに応じて)、あなたがのためにファイルを開くためにr+モードを使用することができます同時に書き込みを読ん:

with open('test.txt', 'r+') as test: 
    # read and write to file as necessary 
0

をとにかく、with open(filename, mode) as file:を使用すると、file.close()を取り除くことができるので、より効率的です。

関連する問題