我有去遞歸通過一些文件夾,在的UnicodeDecodeError「UTF-8」編解碼器不能解碼字節0XB0
for root, subFolders, files in os.walk(str(rootdir)):
的方式運行程序我找到錯誤UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 37: invalid start byte
代碼。
已更改rootdir
的方向,以查看錯誤何時開始,並且發現路徑中的一些文件夾,我實際上想要使用它們,這些文件夾完全正常,有些返回錯誤,但是所有子目錄都只有文件夾或者基本上具有相同的文件,所以我不知道錯誤來自何處或如何解決。
請幫忙。
錯誤出現在我使用外部軟件包的行中,但軟件包導入正常,代碼正常,並且它在未出現unicode錯誤時有效。行代碼在文件夾中導入.xml文件,該文件是否存在問題? (不應該,因爲它們都是用相同的程序創建的,如果有錯誤,那麼所有的都應該是錯的,而不是少數)
編輯:要真正測試我的代碼,你必須安裝pymatgen(你可以用pip)並獲得一個vasprun.xml
文件。非常難以想象,因此我爲什麼沒有把它放在開頭。
代碼(與所述誤差最後一行)
from pymatgen.electronic_structure.dos import CompleteDos, add_densities, Dos
from pymatgen.electronic_structure.core import Spin, Orbital
from pymatgen.io.vasp.outputs import Vasprun, Procar
vasprun = Vasprun(root+"/vasprun.xml")
錯誤:
Traceback (most recent call last):
File "an.py", line 196, in <module>
vasprun = Vasprun(root+"/vasprun.xml")
File "/usr/lib64/python2.7/site-packages/pymatgen/io/vasp/outputs.py", line 383, in __init__
self.update_potcar_spec(parse_potcar_file)
File "/usr/lib64/python2.7/site-packages/pymatgen/io/vasp/outputs.py", line 829, in update_potcar_spec
potcar = get_potcar_in_path(os.path.split(self.filename)[0])
File "/usr/lib64/python2.7/site-packages/pymatgen/io/vasp/outputs.py", line 813, in get_potcar_in_path
pc = Potcar.from_file(os.path.join(p, fn))
File "/usr/lib64/python2.7/site-packages/pymatgen/io/vasp/inputs.py", line 1704, in from_file
fdata = reader.read()
File "/usr/lib64/python2.7/codecs.py", line 314, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 37: invalid start byte
請顯示完整的錯誤信息和所有相關代碼。 – DyZ
看看[問]並編輯你的問題,添加諸如你的實際代碼(或者最好是[MCVE])的東西,你得到的確切例外,你得到的線路等。 – pvg
我把這個例子,但懷疑它會有幫助 –