2013-09-26 14 views
1

我是Python新手,目前正在學習,我有一個任務需要使用python腳本來讀取和寫入文件。我的腳本的閱讀部分似乎按預期工作,但寫入部分發生錯誤。這也可能是一些小事我已經做了,但這裏是我的代碼:AttributeError:'str'對象在Python中沒有屬性'filename'

class LogMessage(): 
    def __init__(self, filename): 
    self.filename = filename 

    def read(self): 
    inputFile = open(self.filename) 
    for line in inputFile: 
     print(line, end='') 

    def write(self): 
    outputFile = open(self.filename) 
    #writeInput = input('What data do you wish to write?:\n') 
    for line in writeInput: 
      print(line,file = outputFile, end='') 




filename = LogMessage('new.txt') 
filename.read() 
writeInput = input('What data do you wish to write?:\n') 
LogMessage.write(writeInput) 

讀取部分工程,但考慮用戶數據,並將其寫入文件,並給出了這個錯誤:

Traceback (most recent call last): 
File "/home/alex/workspace/Python/Learn Python/labEx9.py", line 22, in <module> 
LogMessage.write(writeInput) 
File "/home/alex/workspace/Python/Learn Python/labEx9.py", line 11, in write 
outputFile = open(self.filename) 
AttributeError: 'str' object has no attribute 'filename' 

誰能幫助我, 非常感謝。

亞歷

+2

你不調用'寫()'作爲一個實例方法。也許你的意思是'filename.write(...)'而不是'LogMessage.write(...)'? – millimoose

回答

4

必須呼籲「文件名」「寫」,這是的LogMessage的一個實例,而不是在LogMessage類。

除此之外,還有其他一些問題(例如,「writeInput」沒有在方法中定義的「寫」)

+0

非常感謝,全部修好! –

0
class LogMessage(): 
def __init__(self, filename): 
    self.filename = filename 

def read(self): 
    inputFile = open(self.filename) 
    for line in inputFile: 
     print(line, end='') 

def write(self): 
    writeInput = input('What data do you wish to write?:\n') 
    outputFile = open(self.filename, 'w') 
    for line in writeInput: 
      print(line, file = outputFile, end='') 

filename = LogMessage('new.txt') 
filename.write() 
filename.read() 
相關問題