PythonでTeXアクセントをUTF-8に変換する

PythonでTeXアクセントをUTF-8に変換する

次のように編集してください

まず、これが重複した質問であると確信しています。ところで、どのように探すべきかわかりません。私はかなり長い間これをやってきました。

私はPythonを使用して.txtファイルから特定のファイルへのパスを読みます。つまり

/home/username/Documents/K\"{u}hnelt.pdf

これで、別のディレクトリにコピーしようとすると、見つからshutil.copyfile()ないというメッセージが表示されます。しかし、手動で書くと

/home/username/Documents/Kühnelt.pdf

それは非常にうまく動作します。コーディングの問題のようですが、私はこのような部分についてよく知らず、わかりません。

次の質問に技術的なエラーがある場合は申し訳ありませんが、正しく修正する方法がわかりません。正しく理解してください。問題は、コマンドラインに書かれた文字列を「解釈」し、それを「完全に設定された」型文字列に変換できるPythonコマンドがありますか?

私のコンピュータから現在のフォルダに複数の.pdfファイルをコピーするためにPythonでスクリプトを書いています。実際にファイルからPDFの場所を読みました.bib。この.bibファイルの場所はTeX形式で作成されます。

今私のPythonスクリプトは、.bibファイルを1行ずつ読み、見つけたとき

file = {:home/user/Documents/K\"{u}hnelt\_2003.pdf:pdf},

維持するために解析します。MyString = "home/user/Documents/K\"{u}hnelt\_2003.pdf"

次に、shutil.copyfile(MyString, "NewName.pdf" )ファイルを現在のディレクトリにコピーします。このTeXスタイルを含むファイルを除いてうまくいきます。

ベストアンサー1

古くてUnicodeを認識していないBibTeXから最新バージョンに切り替えることを検討してください。ビブラテックス、BiberはUnicodeをサポートしています。

これがオプションでない場合は、次を使用します。サージパーサー図書館。これには、BibTeX準拠のTeX表記をUnicodeに変換するためのコードが含まれています。bibtexparser.customization.convert_to_unicode。マニュアルに記載されている例に基づいています。

import bibtexparser
with open(bibtex_file_name) as bibtex_file:
    parser = bibtexparser.bparser.BibTexParser()
    parser.customization = bibtexparser.customization.convert_to_unicode
    bibliography = bibtexparser.load(bibtex_file, parser=parser)
    for entry in bibliography.entries:
        if entry.has_key('file'):
            shutil.copy(entry['file'], …)

おすすめ記事