Python

在 Python 中將 TeX 重音轉換為 UTF-8

  • May 29, 2018

在下面編輯

首先,我很確定這是一個重複的問題。但我不知道如何搜尋它。我已經花了很長時間了。

我正在使用 python 從 .txt 文件中讀取特定文件的路徑。IE

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

現在,如果我嘗試使用 將它複製到另一個目錄中shutil.copyfile(),它會說找不到它。但是,如果我手動編寫

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

它工作得很好。我認為這是一個編碼問題,但我對這些東西並不流利,我無法弄清楚。

如果以下問題中存在技術錯誤,我很抱歉,但我不知道如何正確製作。希望你能正確理解。問題是,python 中是否有任何命令可以“解釋”在命令行中寫入的字元串,並將其轉換為“完全組合”類型的字元串?

我正在用 python 編寫一個腳本,將我電腦中的幾個 .pdf 複製到目前文件夾中。.bib我實際上是從文件中讀取 pdf 位置。正是這個.bib文件的位置以 TeX 格式寫入。

現在,我的 python 腳本逐行讀取 .bib 文件,當它找到

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 樣式的文件。

考慮從過時的、不支持 Unicode 的 BibTeX 轉移到現代的Biblatex,以及支持 Unicode 的 Biber。

如果這不是一個選項,請使用Bibtexparser庫。它包含從 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'], …)

引用自:https://unix.stackexchange.com/questions/198710