How to write and save html file in python?
这就是我知道如何写和保存它的方法
1 2 3 | Html_file= open"(filename","w") Html_file.write() Html_file.close |
但是,如果我想写这么长的代码,我该如何保存到文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 1 <table border=1> 2 <tr> 3 <th>Number</th> 4 <th>Square</th> 5 </tr> 6 <indent> 7 <% for i in range(10): %> 8 <tr> 9 <td><%= i %></td> 10 <td><%= i**2 %></td> 11 </tr> 12 </indent> 13 </table> |
号
- 出于兴趣,您希望Len是什么号码?
html_file.write( %s</td>' % (colour[j % len(colour)], k))等有什么问题? - 另外,你混合了
print"string" 和print("string") 。坚持使用在您使用的Python版本中默认的版本。- 真的很长的代码是可以的,但是你确实意识到你可以在HTML中自由地插入空白,如果你愿意的话,不是吗?
- 为什么不使用库进行DOM操作?
- @迈克尔,我还没学会多姆。如何使用它btw?
- @埃里卡萨瓦基里,我认为没有人能理解你的要求。更改示例只会导致进一步的混乱。你说的"长代码"是什么意思?您是指(a)包含许多行的HTML,还是(b)使用python代码生成的HTML(例如
for 循环)?- @Anubhav我的意思是它很长,所以我如何把它放到html_write()函数中,该函数通常只在括号中包含一个或两个单词。对不起,我知道我的英语不太好,但我真的想解释一下。另外,我还是一个Python初学者,但我真的很想学习,所以我可以和你们一样好。
- 我理解你。您可以将多行字符串放入三个引号中:
""" long string goes here""" 。所以只需将HTML存储在一个字符串变量中:html_str ="""long html string""" 。然后把这个变量传递给write :HTML_file.write(html_str) 。有帮助吗?- @阿努巴夫非常感谢!!
- 我会把它作为答案贴出来。请接受,这样问题就不会出现在"未回答"部分。
可以通过将多行字符串括在三个引号中来创建多行字符串。因此,您可以将HTML存储在一个字符串中,并将该字符串传递给
write() :1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19html_str ="""
<table border=1>
<tr>
<th>Number</th>
<th>Square</th>
</tr>
<indent>
<% for i in range(10): %>
<tr>
<td><%= i %></td>
<td><%= i**2 %></td>
</tr>
</indent>
</table>
"""
Html_file= open("filename","w")
Html_file.write(html_str)
Html_file.close()您也可以这样做,而不必使用
with 关键字调用close() 。例如:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# HTML String
html ="""
<table border=1>
<tr>
<th>Number</th>
<th>Square</th>
</tr>
<indent>
<% for i in range(10): %>
<tr>
<td><%= i %></td>
<td><%= i**2 %></td>
</tr>
</indent>
</table>
"""
# Write HTML String to file.html
with open("file.html","w") as file:
file.write(html)请参阅https://stackoverflow.com/a/11783672/2206251了解有关python中
with 关键字的更多详细信息。
1print('<tr><td>%04d</td>' % (i+1), file=Html_file)- 这只在使用python 3打印函数时有效,因此您需要添加
from __future__ import print_function 来将其与问题中编写的python 2代码一起使用。 - 有趣!这在任何方面都比
file.write() 好吗?即使这是可行的,你不应该坚持"首选"的方式吗,file.write() ?
您可以尝试:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18colour = ["red","red","green","yellow"]
with open('mypage.html', 'w') as myFile:
myFile.write('<html>')
myFile.write('<body>')
myFile.write('<table>')
s = '1234567890'
for i in range(0, len(s), 60):
myFile.write('<tr><td>%04d</td>' % (i+1));
for j, k in enumerate(s[i:i+60]):
myFile.write('<td><font style="background-color:%s;">%s<font></td>' % (colour[j %len(colour)], k));
myFile.write('</tr>')
myFile.write('</table>')
myFile.write('</body>')
myFile.write('</html>')号
- 我不知道python的
file.write() 是如何优化的,但是每次你想附加一些东西时都使用它,这是一个坏主意,而且在执行IO之前,你可能应该将它保存到一个列表(堆栈)中。换句话说,有一个content = [] 和docontent.extend("") 等。 - 可以使用itertools.cycle简化背景颜色选择。例如,使用
colour = itertools.cycle(["red", ...]) 创建迭代器,然后使用next(colour) 检索下一种颜色。 - 这将写入一个只有一行的文件,因为任何地方都没有换行输出。那是很长的密码…
- python的
file.write() 是缓冲的,所以我不必担心调用太多或试图优化对它的调用。
您可以使用write()执行此操作:
1
2
3
4
5#open file with *.html* extension to write html
file= open("my.html","w")
#write then close file
file.write(html)
file.close()。
Nurul Akter Towhid答案的较短版本(fp.close是自动的):
1
2with open("my.html","w") as fp:
fp.write(html)。
- python关键字"with"用于什么?
- python:我如何检查一个文件是否存在没有异常?
- shell:用Python调用外部命令
- oop:Python中的元类是什么?
- exception:如何在Python中安全地创建嵌套目录?
- Python有三元条件运算符吗?
- python:如何按值对字典进行排序?
- 关于python:如何列出目录中的所有文件?
- Python有字符串容器吗?子字符串方法?
- 关于python:将打印保存到图像文件,而不是使用matplotlib显示它
- 关于性能:为什么在python 3中"100000000000000在范围内(100000000000000001)"这么快?
Copyright © 码农家园 联系:[email protected]- 另外,你混合了