我是Python的新手,目前正在学习,我有一个任务是用python脚本读取和写入文件。我的脚本的读取部分似乎按预期工作,但写入部分抛出错误。这可能是我做过的微不足道的事情,但这是我的代码:
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'
任何人都可以帮助我,非常感谢。
亚历
答案 0 :(得分:4)
你必须在'filename'上调用'write',这是LogMessage的一个实例,而不是在LogMessage类上。
除此之外,还有其他问题(例如'writeInput'未在方法'write'中定义)
答案 1 :(得分:1)
如果在使用flask时出现此类错误,请检查您的 html代码(your_form。)并将其添加到html中:
<form method="POST" action="" enctype="multipart/form-data">
enctype =“ multipart / form-data” 会有所帮助。
答案 2 :(得分: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()