属性错误:';str';对象没有属性';文件名';用Python
我是Python新手,目前正在学习,我的任务是用Python脚本读写文件。我的脚本的阅读部分似乎工作正常,但是写入部分抛出了一个错误。这可能是我做过的微不足道的事情,但下面是我的代码:属性错误:';str';对象没有属性';文件名';用Python,python,Python,我是Python新手,目前正在学习,我的任务是用Python脚本读写文件。我的脚本的阅读部分似乎工作正常,但是写入部分抛出了一个错误。这可能是我做过的微不足道的事情,但下面是我的代码: class LogMessage(): def __init__(self, filename): self.filename = filename def read(self): inputFile = open(self.filename) for line in input
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'
回溯(最近一次呼叫最后一次):
文件“/home/alex/workspace/Python/Learn Python/labEx9.py”,第22行,在
LogMessage.write(writeInput)
文件“/home/alex/workspace/Python/Learn Python/labEx9.py”,第11行,以书面形式
outputFile=open(self.filename)
AttributeError:“str”对象没有属性“filename”
谁能帮帮我,谢谢
Alex您必须在“filename”上调用“write”,这是LogMessage的一个实例,而不是在LogMessage类上
除此之外,还有其他问题(例如“write”方法中未定义“writeInput”)您必须在“filename”上调用“write”,这是LogMessage的实例,而不是LogMessage类上
除此之外,还有其他问题(例如“write”方法中未定义“writeInput”)如果您在使用flask时遇到此类错误,请检查您的html代码(您的表单)。并将其添加到您的html中:
<form method="POST" action="" enctype="multipart/form-data">
enctype=“multipart/form data”会有所帮助。如果您在使用flask时遇到此类错误,请检查您的html代码(您的表单)。并将其添加到您的html中:
<form method="POST" action="" enctype="multipart/form-data">
enctype=“multipart/form data”会有所帮助。您没有将
write()
作为实例方法调用。也许您的意思是filename.write(…)
而不是LogMessage.write(…)
?您不是将write()
作为实例方法调用。也许你的意思是filename.write(…)
而不是LogMessage.write(…)
?非常感谢,都修复了!非常感谢,都修好了!