最新错误= AttributeError:“ str”对象没有属性“ write”

时间:2019-04-30 19:57:06

标签: python

程序仍然是一团糟,并且给了我很多错误。...经过多次尝试后很遗憾。

在阅读其他解决方案后,尝试将file.write更改为f.write...。但是知道我错了。

f = 'file'

def main():
    statement
    statement
    statement
    statement
    statement

def write_html_file():
   statement
    statement
    statement
    statement
    statement

def write_html_head():
    statement
    statement
    statement
    statement

def write_html_body():
    statement
    statement
    statement
    statement
    statement
   print('Your web page is done')   

main()

以下是用户应看到的示例:

输入您的姓名:第一姓   描述一下自己:我正在努力成为一名出色的python学生...   那里...


>用户输入信息后,程序应使用输入为网页创建n个HTML文件。以下是上述输入的示例HTML内容。

<html>
<head>
</head>
<body>
   <center>
      <h1> Firs Last </h1>
   </center>
   <hr />
   I am trying to be a great python student...just not
there yet...
   <hr />
</body>
</html>

2 个答案:

答案 0 :(得分:0)

删除全局file变量是没有用的,对于其他函数,您应该传递一个表示filenamedescription的参数,如下所示:

def main():
    name = input("Enter your name: ")
    description = input("Describe yourself: ")

    f = open("my_page.html", "w")
    write_html_file(f, name, description)
    f.close()


def write_html_file(f, name, description):
    f.write(
        f"<html>\n<head>\n</head>\n<body>\n<center>\n<h1>{name}</h1>\n</center>\n<hr />{description}<hr />\n</body>\n</html>"
    )


main()

这应该可以解决您的属性错误

本来可以以更好的方式编写html代码,但这可以正常工作,并且您不需要多个函数即可将文件写入文件。

您可以在不同的write语句中拆分每一行,但请确保使用格式来提供名称和描述,并且可以在字符串开头使用f或使用.foramt()方法来完成

答案 1 :(得分:0)

您需要使变量可从其他函数访问。如果在main方法之外声明f,那么我们也可以在其他函数上使用f.write。您的代码将像这样运行:

f = 'file'
name=input('Enter your name: ')
description=input('Describe yourself: ')

f = open('my_page.html','w')

def main():
   write_html_file()
   f.close()

def write_html_file():
   f.write('<html>\n')
   f.write('<head>\n')
   f.write('<body>\n')
   f.write('</html>\n')



def write_html_head():
   f.write('<head>\n')
   f.write('<title>My Personal Web Page</title>')
   f.write('/<head>\n')


def write_html_body():
   f.write('<body>\n')
   f.write('\t<center>\n')
   f.write('\t\t<h1>'+name+'</h1>\n')
   f.write('\t<hr />\n')
   f.write(description+'\n')
   f.write('\t<hr />\n')
   f.write('\t</center>\n')
   f.write('</body>\n')
   print('Your web page is done')   

main()

运行时,您的输出如下所示:

Enter your name: Sykezlol
Describe yourself: I like python
Your web page is done


<html>
<head>
<body>
</html>
<body>
    <center>
        <h1>Sykezlol</h1>
    <hr />
I like python
    <hr />
    </center>
</body>
<head>
<title>My Personal Web Page</title>/<head>