2

私はPythonにまったく慣れていないので、私の質問はばかげているかもしれませんが、多くのスレッドを読んでも、私の質問に対する答えは見つかりませんでした。

html、xml、latex、およびその他のテキスト形式を含み、latexのみの形式にしようとしている混合ソースドキュメントがあります。

したがって、私はpythonを使用して、さまざまなコマンドを通常の表現として認識し、それらを適切なlatexコマンドに置き換えました。これまでのところ、すべてうまくいきました。

今、私はギリシャ文字のようないくつかの「生のタイプ」のUnicode記号を残されています。残念ながら、手作業でそれを行うのはもうすぐです。したがって、私もこれを賢く行う方法を探しています。Pythonがそれらを認識/読み取る方法はありますか?そして、Pythonにギリシャ文字として書かれたPiなどを認識/読み取るように指示するにはどうすればよいですか?

私が使用するコードの最小限の例は次のとおりです。

fh = open('SOURCE_DOCUMENT','r')
stuff = fh.read()
fh.close()

new_stuff = re.sub('READ','REPLACE',stuff)
fh = open('LATEX_DOCUMENT','w')
fh.write(new_stuff)
fh.close()

重要な情報かどうかはわかりませんが、Windowsで実行しているPython2.6を使用しています。

誰かが私にヒントを与えることができれば、少なくともそれに応じた情報をどこで見つけるか、またはこれがどのように機能するかについて、私は本当にうれしいです。または、私が完全に間違っていて、Pythonがこの仕事をすることができないかどうか...

よろしくお願いします。
乾杯、
ブリッタ

4

3 に答える 3

4

あなたは「生の」Unicode文字列について話します。どういう意味ですか?Unicode自体はエンコーディングではありませんが、Unicode文字を格納するためのさまざまなエンコーディングがあります(Joelによるこの投稿を読んでください)。

Python 3.0のopenencoding関数は、UTF-8(Unicodeをエンコードする非常に一般的な方法)などのエンコードを指定できるオプションの引数を取ります。Python 2.xでは、コーデックモジュールを確認してください。このモジュールは、ファイルのエンコードを指定できるオープン関数も提供します。

編集:あるいは、これらの貧弱な文字をそのままにして、LaTeXファイルのエンコーディングを上部に指定してください:

\usepackage[utf8]{inputenc}

(私はこれを試したことがありませんが、うまくいくはずです。ただし、に置き換える必要があるかもしれません)utf8utf8x

于 2009-05-26T10:09:09.230 に答える
1

まず、これを読んでください:

すべてのソフトウェア開発者が絶対に、積極的に Unicode と文字セットについて知っておく必要がある絶対最小値 (言い訳はありません!)

それから、戻ってきて質問してください。

于 2009-05-26T10:42:40.347 に答える
0

入力ドキュメントの「エンコーディング」を決定する必要があります。Unicode は何百万もの文字をエンコードできますが、ファイルは 8 ビット値 (0 ~ 255) しかストーリー化できません。したがって、Unicode テキストは何らかの方法でエンコードする必要があります。

ドキュメントが XML の場合は、最初の行にある必要があります (encoding="..."; "encoding" フィールドがない場合、"utf-8" がデフォルトです)。HTML の場合は、「charset」を探します。

他のすべてが失敗した場合は、エンコーディングを設定できるエディター ( jEditなど) でドキュメントを開きます。テキストが正しく見えるまで試してみてください。次に、この値をPythonのencodingパラメーターとして使用します。codecs.open()

于 2009-05-26T10:39:30.430 に答える