2016-10-25 5 views
3

私はHTML出力を生成するいくつかのpythonユーティリティを持っています。テンポラリファイルに保存してWebブラウザで開く代わりに、出力をブラウザにリダイレクトしてプレビューすることができます。たとえば、次のようなものがあります。stdoutをWebブラウザに直接パイプすることはできますか?

myscript.py | open /Applications/Safari.app 

このようなことをする方法はありますか?私はdata: URLとしてHTMLをコードするとブラウザがそれを開く作って思い付くことができる最高の約OS Xの

答えて

1

日午前:

import webbrowser, base64 

html = "<b>hello world</b>" 
b64url = "data:text/html;base64," + base64.b64encode(html) 
webbrowser.get("safari").open(b64url) 

しかし、これは確実に動作するようには思えませんSafari以外のブラウザの場合大きなページでもうまくいくかどうかはわかりません。最終的にはURLが処理できないほど大きくなる可能性があります。

+0

ありがとうございました。 'webbrowser'ライブラリについて知りませんでした。その限界をテストしようとします。 – beroe

+0

それは非常に限られています、私は恐れています。私がここで示している機能は、それがサポートしているほとんど全てです。 – duskwuff

0

openユーティリティは非常に強力です。チェックはman openです。 -f引数の説明にはデフォルトのテキストエディタが記述されていますが、実際にはすべてのアプリケーションで使用できます。

myscript.py | open -f -a safari 

は残念ながら openだけの一時 .txtファイルへのご入力を保存し、あなたがそのようなHTMLをレンダリングすることはできませんので、ブラウザは、プレーンテキストとして扱われます:だからあなたの場合のために、この作業をする必要があります。

+0

答えてくれてありがとうございますが、あなたが言っていることがはっきりしていません...結局はうまくいかないのですか? – beroe

+0

プレーンテキストがうまく表示されます。ただHTMLをレンダリングしません –

関連する問題