2016-05-25 4 views
1

PHPでincludeがどのように動作するかのようなテキストファイルを組み合わせたいと思います。PHPで 'include'のようなテキストファイルをPythonを使って動作させる

コードは問題ありませんが、ジョブを実行する既存のソリューションまたはパッケージが優先されます。

ここに私が詳細に達成しようとしていることがあります。例えば

<html> 
<body> 
    <header> 
    <<<INCLUDE header.html>>> 
    </header> 
    Content 
    <footer> 
    <<<INCLUD footer.html>>> 
    </footer> 
</body> 
</html> 

header.htmlfooter.htmlmain.html

は、いくつかの部分的なHTMLが含まれています。

と私はpythonスクリプトを実行した後、processed.htmlという3つのファイルを組み合わせて生成された新しいファイルを作成したいと思います。

ありがとうございます!

+0

です。たとえば

Jinjaで、あなたのような何かを行うことが?あるいは、DjangoやFlaskのようなWebフレームワークを使用していますか? – AKS

+0

Linux環境ではすべてのソリューションが自動化できる必要があります。私はDjangoやFlaskがどう機能するか分かりませんが、JavaScriptの解決策は私が探しているものではないことを知っています。ありがとう:) @AKS – LETs

+0

私はジンジャーのテンプレートエンジンがFlaskからスタンドアロンになると信じています –

答えて

1
import re 
html = open("main.html").read() 
for match in re.findall('\<<<INCLUDE.*?\>>>',s): 
    name = match.replace("<<<INCLUDE ","").replace(">>>","") 
    content = open(name).read() 
    html = html.replace(match,content) 

open("processed.html","w").write(html) 
+0

ターゲットHTMLファイルのINCLUDEのスキャンを自動化できればとてもいいと思います。この例では、ヘッダーとフッターのみが含まれていますが、他のファイルには異なるINCLUDEがあります。私が他の答えを得られない場合は、コードを改善して使用しようとします。 :) ありがとうございました! – LETs

+0

恐ろしい!引数から入力ファイルのパスと出力ファイルのパスを取得して使用するようにコードを変更します。あなたのお時間をありがとうございました! – LETs

+1

https://gist.github.com/letsdevus/62f03d28d11151275a0878b37dd71886ここで私の完全な実装。 :)スクリプトを同じフォルダに置き、INCLUDEを含むHTMLファイルの拡張子を.mhtmlに変更するだけです。次に、スクリプトを実行します。 * .mhtmlを検出して* .htmlを生成します。 – LETs

1

あなたが求めているものはTemplating Enginesです。それだけのpython

<html> 
<body> 
    <header> 
    {% include 'header.html' %} 
    </header> 
    Content 
    <footer> 
    {% include 'footer.html' %} 
    </footer> 
</body> 
</html> 
+0

Btw、Jinjaが出力ファイルを生成できますか? – LETs

+0

[http://jinja.pocoo.org/docs/dev/api/#jinja2.Template.render]によると、 'template.render()'はレンダリングされたテンプレートをユニコード文字列として返しますので、それをあなたが望む任意のファイルに変換します。 –

+0

ありがとうございます!私はJinjaのウェブサイトをチェックした。インストールはちょっと面倒だったようです(私の現在の環境)。それがNPMやBowerをサポートしていれば非常にいいですね。 – LETs

関連する問題