web-dev-qa-db-ja.com

Pythonを使用してHTMLファイルを編集および作成します

私はPythonが初めてです。現在、Pythonを使用してHTMLファイルを作成するための割り当てに取り組んでいます。 HTMLファイルをpythonに読み込み、編集して保存する方法を理解しています。

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

上記の部分の問題は、HTMLファイル全体を置き換え、write()内に文字列を配置することだけです。ファイルを編集すると同時にコンテンツをそのままにするにはどうすればよいですか。つまり、このようなものを書きますが、-bodyタグの中に

<link rel="icon" type="image/png" href="img/tor.png">

Bodyの開始タグと終了タグの間に自動的に入るリンクが必要です。

12
Lilly123

あなたはおそらく BeautifulSoupで読む

import bs4

# load the file
with open("existing_file.html") as inf:
    txt = inf.read()
    soup = bs4.BeautifulSoup(txt)

# create new link
new_link = soup.new_tag("link", rel="icon", type="image/png", href="img/tor.png")
# insert it into the document
soup.head.append(new_link)

# save the file again
with open("existing_file.html", "w") as outf:
    outf.write(str(soup))

次のようなファイルがあるとします

<html>
<head>
  <title>Test</title>
</head>
<body>
  <p>What's up, Doc?</p>
</body>
</html>  

これは

<html>
<head>
<title>Test</title>
<link href="img/tor.png" rel="icon" type="image/png"/></head>
<body>
<p>What's up, Doc?</p>
</body>
</html> 

(注:空白文字が空になっていますが、html構造は正しくなっています)。

18
Hugh Bothwell

既存のファイルを消去する書き込み(w)モードを使用しています( https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files )。代わりに追加(a)モードを使用します。

table_file = open('abhi.html', 'a')
0
Selcuk