2017-11-08 5 views
-2

難しいことをPythonで覚えているので、1つのファイル(Doc1.txt)を他のファイル(Doc2.txt)にコピーすることはできますが、以下のコードを使用して動作していません。 11行目を省略すると、ファイルのコピーはうまくいきますが、11行目を含む「新しい」Doc2の内容を印刷しようとすると、「IOError:読み込み用に開かれていないファイル」というエラーが表示されます。私はここで非常に基本的な何かを逃していると少し不満を感じているように感じる。私は以前同様の質問がされていることを知っていますが、その答えは役に立たなかった。事前に多くの感謝。ファイルをPythonで書き込んだ後で印刷する方法

from sys import argv 

script, from_file, to_file = argv 

in_file = open(from_file) 
indata = in_file.read() 

out_file = open(to_file, 'w') 
out_file.write(indata) 

print out_file.read() 

out_file.close() 
in_file.close() 
+0

問題はまさにエラーがあなたに伝えるものです。あなたは書き込み専用に開いたファイルを読み込もうとしています。 https://docs.python.org/2/library/functions.html#openをご覧ください。 – pvg

答えて

2

書き込み専用の 'w'フラグを使用してout_fileを開いています。あなたは

変更

out_file = open(to_file, 'w')

out_file = open(to_file, 'r+')

に最初からそれを閉じて、 'R​​' で再度開くか、単に読み取りのための '+ R' でそれを開いて記述する必要があるのいずれか

そして、以下を追加してファイルの先頭に戻る

out_file.seek(0)

0

ファイルは書き込み専用です。 "w"パラメータを"r+"に設定して、読み書きします。

また、ファイルに書き込んだ後、out_fileの位置はファイルの最後になります。内容を読むには、最初にファイルの先頭に移動するには、out_file.seek(0)行を追加する必要があります。

関連する問題