[英]Issue with “w” to output and a loop in python3
我有一个问题,我正在写的程序。
这是代码:
def main():
print ("This program let you create your own HTML-page,\nwith the necessary tags allready included")
t = ("<!DOCTYPE html>", "<html>", " <head>", " </head>", "<body>", "</html>") #Spaces for the indentation in the HTML-code.
menu = input("Press 1 to enter the file name for the html-page\nPress 2 to enter title for the HTML-page\nPress 3 to start entering code in body ")
while True:
if menu == "1":
name = input("Enter the name for your HTML-page: ")
#with open(name + ".html", 'w') as doc:
#Here is the first problem, indenterror if uncommented, otherwise elif gets syntax error.
#And this is crucial to get the code into the HTML-document.
#The error without (with open(name + ".html", 'w') as doc:) will be "global name "doc" is not defined".
menu = input("Press 2 to enter title for the HTML-page\nPress 3 to start entering code in body ")
elif menu == "2":
print (t[0], file=doc) #<!DOCTYPE html>
print (t[1], file=doc) #<html>
print (t[2], file=doc) #<head>
title = input("Enter your title here: ")
doc.write(title)
print (t[3], file=doc) #</head>
menu = input("Press 3 to start entering code in body ")
elif menu == "3":
print(t[4], file=doc) #<body>
code = input("Type </body> to finish your html-page and to close the program.\nEnter your code for body below:\n")
doc.write('{0}\n'.format(code)) #For newline to get the HTML-code cleaner.
while code != "</body>":
code = input("")
doc.write('{0}\n'.format(code))
if code == "</body>":
print ("Congratulations! You have successfully created your own HTML-page by using this python program.")
print (t[5], file=doc) #</html>
#somewhere in the loop above is the second error, I want the </body> to end the program,
#but it loops line 25 (code = input("Type </body> to finish your html-page and to close the program.\nEnter your code for body below:\n"))
main ()
现在问题。 正如您所看到的,我正在尝试编写一个菜单供用户从3个不同的任务中进行选择。 他们所做的一切都应该输出到.html文档。
我已经在代码中评论了我的问题。
我无法弄清楚如何将with open(name + ".html", 'w') as doc:
没有elif的缩进搞砸了,或者我只是得到了elif的语法错误。
第二个问题是我的循环结束。 我希望命令退出程序,因为它也输出.html文档的正确结束代码,但它循环code = input("Type </body> to finish your html-page and to close the program.\\nEnter your code for body below:\\n")
我也无法解决这个问题。
def main():
(...)
while True:
if menu == "1":
name = input("Enter the name for your HTML-page: ")
doc = open(name + ".html", 'w')
menu = input("Press 2 to enter title for the HTML-page\nPress 3 to start entering code in body ")
(...)
doc.close()
main ()
你可以像这样打开一个文件: doc = open(name + ".html", 'w')
,但是当你完成它时不要忘记关闭它,就像doc.close()
。
这是一个简单的文件打开功能。 当然,需要根据您的特定需求进行调整。 “with”语句本身将关闭该文件。
def cat(openfile): #Emulates the cat command used in the Unix shell#
with open(openfile) as file:
lines = file.readlines()
return ''.join(lines)
如果要写入文件,请使用此功能。
def write2file(openfile, WRITE): #openfile = filename to open #WRITE = the string you want to write to file
with open(openfile, 'w') as file:
file.write(str(WRITE))
要向文件追加/添加文本:
def add2file(openfile, add):
with open(openfile, 'a') as file:
file.write(str(add))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.