环境:Python 2.7.18(64-bit) + PyCharm Community Edition 2023.2.2
Python读取文件名中含有中文的文件时,报错:
Traceback (most recent call last):
File “D:\PythonLearnSelf\MyFirstProject\ThermoGroupPrivilege.py”, line 23, in
DOMTree = xml.dom.minidom.parse(‘D:\PythonLearnSelf\报告.xml’)
File “C:\Python27\lib\xml\dom\minidom.py”, line 1918, in parse
return expatbuilder.parse(file)
File “C:\Python27\lib\xml\dom\expatbuilder.py”, line 922, in parse
fp = open(file, ‘rb’)
IOError: [Errno 2] No such file or directory: ‘D:\PythonLearnSelf\\xe6\x8a\xa5\xe5\x91\x8a.xml’
原代码:
#!/usr/bin/python
# -*- encoding:UTF-8 -*-
# 使用DOM方式解析xml文件
from xml.dom.minidom import parse
import xml.dom.minidom
import os
filename = '报告.xml'
path = 'D:/PythonLearnSelf/'
if os.path.exists(path + filename):
print('文件存在')
else:
print('文件不存在')
# 使用minidom解析器打开xml文档
DOMTree = xml.dom.minidom.parse(path + filename)
调整后代码:
#!/usr/bin/python
# -*- encoding:UTF-8 -*-
# 使用DOM方式解析xml文件
from xml.dom.minidom import parse
import xml.dom.minidom
import os
filename = '报告.xml'
path = 'D:/PythonLearnSelf/'
if os.path.exists((path + filename).decode('utf-8')):
print('文件存在')
else:
print('文件不存在')
# 使用minidom解析器打开xml文档
DOMTree = xml.dom.minidom.parse((path + filename).decode('utf-8'))