2017-10-08 7 views
-1

このコードでは、ファイルに書き込むクラスを定義しようとしました。のinitメソッドでは、ファイルの名前が渡されます。私はクラスのインスタンスを作成し、ファイル名の値を渡しました。その後、私はwriteメソッドを呼び出し、ファイルに書き込むためにメッセージを渡しました。最後に、ファイルが作成され、ファイルがmessage.Hereのコードがある場合はされていますPythonでファイルに書き込むクラスを定義する

class Logfile(object): 
    def __init__(self,file_name): 
     self.file_name = file_name 

    def write(self,msg): 
     with open('self.file_name','w') as myFile: 
      myFile.write(msg) 

log = Logfile('myNewFile.txt') 
log.write("this is a log file.") 

with open('myNewFile.txt','r') as readFile: 
    read_file = readFile.read() 

    for line in read_file: 
     print(line) 

をしかし、それはエラーを示しています

FileNotFoundError: [Errno 2] No such file or directory: 'myNewFile.txt'

このPythonコードは「My Folder」というデスクトップフォルダに保存されます。そこに行くと、実際には「myNewFile.txt」という名前のファイルはありません。

しかし、私は、コードの検査部でプログラムを実行した場合、私は意味、この部分:

with open('myNewFile.txt','r') as readFile: 
    read_file = readFile.read() 

    for line in read_file: 
     print(line) 

はその後、エラーはありませんが、それでも「myNewFile.txtが」作成されません。

私を助けてもらえますか?あなたが書くべきwrite方法で

+6

あなたの 'write'メソッドの中で、' 'self.file_name'' - >' self.file_name'は文字列です、もう一つはあなたのメンバー変数です – UnholySheep

+0

ああ私はそれを得ました。 – Protul

+0

あなたはこれを開きます:open( 'self.file_name'、 'w')as myFile。しかし、 'self.filename_name'はファイルの名前ではありません。これは変数です。 –

答えて

0

with open(self.file_name, ‘w’) as my_file 

self.file_nameはすでに文字列であるためです。

0
log = Logfile('myNewFile.txt') 
log.write("this is a log file.") 

with open('myNewFile.txt','r') as readFile: 
    read_file = readFile.read() 

    for line in read_file: 
     print(line) 

すでに.txtファイルの変数を作っているので、あなたは常にwith open(log)を使用してファイルを開くしようとすることができます。私はこれを試したことがなく、この種のコードではほとんど経験がありませんが、それは価値があるかもしれません。

関連する問題