0

Pastebin を使用して Python プログラムのコードを保存し、複数のコンピューターで最新の状態に保ちます。私は現在、更新されたヘルプ ウィンドウを同様に維持しようとしています。.chm ファイルを使用して完全なヘルプ ダイアログを 1 つのファイルに保持できることを確認しましたが、ファイルはテキストにうまく変換されません。

Microsoftのサンプル .chm ファイルを使用し、ファイル ("Viewhlp.chm") をメモ帳で開き、テキストをPastebinにコピーしてから、以下のスクリプトを使用して .chm ファイルの再作成を試みました。これは動作しません。直接開くと「ファイルを開くことができません」というメッセージが表示され、PyWin32 では単に無視されます。Python でロードできるヘルプ ダイアログ用の別のファイル形式はありますか?

import urllib2, sys

helpUrl = "http://pastebin.com/raw.php?i=a8rF2i8a"
originalPath = "Viewhlp.chm"
newPath = "NewHlp.chm"

try:
    helpData = urllib2.urlopen(helpUrl)
except urllib2.URLError:
    sys.exit()

currentHelp = helpData.read()
with open(newPath, mode="wb") as helpFile:
    helpFile.write(currentHelp)

# briefly display using PyWin32 or just open the chm files directly
import win32help
win32help.HtmlHelp(0, None, win32help.HH_INITIALIZE, None)
link = win32help.HH_AKLINK()
link.indexOnFail = 1
link.url = ""
link.msgText = ""
link.msgTitle = ""
link.window = ""
win32help.HtmlHelp(0, originalPath, win32help.HH_KEYWORD_LOOKUP, link)
win32help.HtmlHelp(0, newPath, win32help.HH_KEYWORD_LOOKUP, link)
4

2 に答える 2

1

メモ帳は非印刷文字を正しく表示しません。おそらく最も簡単な方法は、.chm を base64 でエンコードし、エンコードされたバージョンをメモ帳で開いてからペーストビンにコピーすることです。次に、読み取り時にエンコードを解除します。

currentHelp = base64.b64decode(helpData.read())
于 2013-10-11T20:39:50.377 に答える