Python读取含转义字符的Excel文件路径失败问题求助
Python读取含转义字符的Excel文件路径失败问题求助
我来帮你分析下问题出在哪,以及对应的解决办法:
问题根源
你遇到的(unicode error) 'unicodeescape' codec can't decode bytes...错误,核心原因有两个:
- 路径字符串的转义冲突:你用普通字符串写路径时,其中的
\20被Python当成了八进制转义序列解析,但这个序列不完整,直接触发了解码失败。Python默认会把字符串里\开头的片段识别为特殊字符(比如\n是换行),这显然和你实际要指向的文件路径不符。 - 多余的base64编码操作:
pd.read_excel()根本不需要接收base64编码后的内容,它直接支持本地文件路径字符串或文件对象作为参数。你对路径做base64编码完全是画蛇添足,反而传递了bytes类型的无效参数给它。
解决方法
只需要处理好路径的转义问题,直接把正确的路径传给pd.read_excel()即可,下面给你三种可行的写法:
1. 使用原始字符串(最推荐)
在路径字符串前加r前缀,Python就会把字符串里的\当成普通字符,不会解析成转义序列:
import pandas as pd # 加r前缀表示原始字符串,忽略所有转义规则 file_path = r'C:\Users\matth\OneDrive\Dokumente\20241023-1904097928-umsatz.xlsx' df = pd.read_excel(file_path)
2. 把反斜杠替换为正斜杠
Windows系统的文件路径也支持正斜杠,这样完全避开转义问题:
import pandas as pd file_path = 'C:/Users/matth/OneDrive/Dokumente/20241023-1904097928-umsatz.xlsx' df = pd.read_excel(file_path)
3. 用双反斜杠做转义
把路径里的每个\替换成\\,让Python解析为单个普通反斜杠:
import pandas as pd file_path = 'C:\\Users\\matth\\OneDrive\\Dokumente\\20241023-1904097928-umsatz.xlsx' df = pd.read_excel(file_path)
验证小技巧
你可以先打印处理后的路径,确认它和实际文件路径完全一致:
print(file_path) # 正常输出应该是:C:\Users\matth\OneDrive\Dokumente\20241023-1904097928-umsatz.xlsx
备注:内容来源于stack exchange,提问作者Matthias Pospiech
相关产品推荐
相关产品推荐

