私はMacOS Sierra 10.12.16とXcode 8.3.3でPythonバージョン2.7.10を使用しています デモプログラムでは、ファイルに2行のテキストを書きたいと思います。 これは2つのステップで行う必要があります。最初のステップでは、メソッドopenNewFile()が呼び出されます。ファイルはopenコマンドで作成され、1行のテキストがファイルに書き込まれます。ファイルハンドルは、メソッドの戻り値です。 第2ステップでは、ファイルハンドルfHを入力引数とするメソッドcloseNewFile(fH)が呼び出されます。 2行目のテキストをファイルに書き込む必要があり、ファイルを閉じる必要があります。ただし、これにより、エラーメッセージが表示されます。Pythonは単一のwrite()の後にファイルを閉じます
Traceback (most recent call last):
File "playground.py", line 23, in <module>
myDemo.createFile()
File "playground.py", line 20, in createFile
self.closeNewFile(fH)
File "playground.py", line 15, in closeNewFile
fileHandle.writelines("Second line")
ValueError: I/O operation on closed file
Program ended with exit code: 1
ファイルを1つの方法から別の方法に処理することが問題になる可能性があります。
#!/usr/bin/env python
import os
class demo:
def openNewFile(self):
currentPath = os.getcwd()
myDemoFile = os.path.join(currentPath, "DemoFile.txt")
with open(myDemoFile, "w") as f:
f.writelines("First line")
return f
def closeNewFile(self, fileHandle):
fileHandle.writelines("Second line")
fileHandle.close()
def createFile(self):
fH = self.openNewFile()
self.closeNewFile(fH)
myDemo = demo()
myDemo.createFile()
私は間違っていますか? この問題を解決するにはどうすればよいですか?
ファイルを開く/閉じるコードを提供できますか? – AK47
open()で使用すると、コンテキストマネージャは自動的にファイルを閉じます – AK47