top of page
  • takaohi

FUNGuildの゚ラヌ"UnicodeEncodeError: 'cp932' codec can't encode character~"の察凊法

真菌の系統情報から、そのギルド䟋Saprotroph/腐生菌を調べるのに䟿利なツヌルFUNGuildがある。


詳现な䜿い方は今回は割愛するずしお、出た゚ラヌずその察凊法に぀いお曞く。


〈゚ラヌに぀いお〉

私は、Windowsに入れたPython3で、䞊蚘のGitHubペヌゞ内にある以䞋のコヌドを動かした。xxxxは自分のディレクトリやファむルに察応しおいる。

python FUNGuild.py guild -taxa xxxx/xxxx.txt

するず、以䞋の゚ラヌが出た。

UnicodeEncodeError: 'cp932' codec can't encode character '\xf5' in position 187: illegal multibyte sequence

䞀応、アりトプットファむルは曞き出されたが、10209個あったASVに察しお、途䞭の1504個目で終わっおいたのでおかしいず思った。


ちなみに1505個目のASVの分類は、Fungi;Ascomycota;Dothideomycetes;Pleosporales;Parabambusicolaceae;Paratrimmatostroma;kunmingensisで、これより前には出おきおいない。


おそらくこのASVの情報をアりトプットファむルに曞き蟌む際に゚ンコヌディング゚ラヌが発生したず考えられる。


どうやら、Windowsの日本語に察応したcp932ずいう芏栌では、unicodeにおける"\xf5"ずいう文字を曞けないようである。


そこで、FUNGuild.pyを線集しお、゚ンコヌディングを指定するこずにした。


〈元々のFUNGuild.pyの214216行目〉

with open(output_file, 'w') as f:
        for line in output:
            f.write('%s\n' % '\t'.join([str(i) for i in line]))

〈線集埌。自分はFUNGuild_edit.pyずしお保存した〉

with open(output_file, 'w', encoding='utf-8') as f:
        for line in output:
            f.write('%s\n' % '\t'.join([str(i) for i in line]))

これでうたくいった党郚のASVの情報がアりトプットファむルに曞き蟌たれた


詊しおはいないが、他に考えられる察凊法ずしお、WSL UbuntuにPythonを入れ、そこでコマンドを走らせるなどしおもいいかもしれない。


〈おたけ〉

゚ンコヌディングをutf-8にしお出しおみたら、䞊蚘の゚ラヌの原因であった1505個目のASVのcitationSourceの情報のずころで、"Põlme S, et al. 2020"の著者のPõlmeさんの"õ"が曞きだせなかったようである。

閲芧数19回0件のコメント
bottom of page