使用Python编辑.html文件?

时间:2013-09-30 10:56:47

标签: python

我想删除html文件中的所有内容并添加<!DOCTYPE html><html><body>

到目前为止,这是我的代码:

with open('table.html', 'w'): pass
table_file = open('table.html', 'w')
table_file.write('<!DOCTYPE html><html><body>')

运行我的代码后,table.html现在为空。为什么呢?

我该如何解决?

3 个答案:

答案 0 :(得分:7)

看起来你没有关闭文件,第一行什么也没做,所以你可以做两件事。

跳过第一行并最后关闭文件:

table_file = open('table.html', 'w')
table_file.write('<!DOCTYPE html><html><body>')
table_file.close()

或者如果您想使用with语句,请执行以下操作:

with open('table.html', 'w') as table_file:
  table_file.write('<!DOCTYPE html><html><body>')
  # Write anything else you need here...

答案 1 :(得分:4)

with open('table.html', 'w'): pass 
   table_file = open('table.html', 'w')
   table_file.write('<!DOCTYPE html><html><body>')

这会打开文件table.html两次,而你也没有正确关闭文件。

如果您使用 ,那么:

with open('table.html', 'w') as table_file: 
   table_file.write('<!DOCTYPE html><html><body>')

with 会在范围后自动关闭文件。

否则你必须像这样手动关闭文件:

table_file = open('table.html', 'w')
table_file.write('<!DOCTYPE html><html><body>')
table_file.close()

并且您不必使用运算符。

答案 2 :(得分:1)

我不确定您使用with open('table.html', 'w'): pass尝试实现的目标。请尝试以下方法。

with open('table.html', 'w') as table_file:
    table_file.write('<!DOCTYPE html><html><body>')

您当前没有关闭该文件,因此更改未写入磁盘。