2017-10-08 78 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代碼保存在名爲「我的文件夾」的桌面文件夾中。而當我去那裏時,確實沒有名爲「myNewFile.txt」的文件。

但是,如果我的代碼的檢查部分運行程序,我的意思是,這部分:

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

    for line in read_file: 
     print(line) 

那麼,有沒有錯誤,但仍然未創建「myNewFile.txt」。

你能幫我嗎?

+6

在你的'write'方法中:''self.file_name'' - >'self.file_name'一個是字符串,另一個是你的成員變量 – UnholySheep

+0

哦,我明白了。我很傻。感謝 – Protul

+0

你打開這個:打開('self.file_name','w')myFile。但'self.filename_name'不是文件的名稱。這是一個變量。 –

回答

0

write方法,你應該寫:

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) 

您可以隨時嘗試使用with open(log)打開文件,因爲您已經將.txt文件作爲變量。我從來沒有嘗試過這種方式,對這種類型的代碼沒有什麼經驗,但它可能值得一試。