Pandas读取含单引号文件名的文件报错,求可行解决方案
解决带单引号文件名的Pandas读取问题
核心问题分析
你遇到的问题根源有两个:
- 定义文件名时的字符串语法错误:用单引号包裹含单引号的文件名会提前终止字符串,导致语法报错
- 直接用
+拼接路径的方式不够可靠,可能引发路径格式问题
无需移除单引号的解决步骤
1. 正确定义含单引号的文件名
Python中处理含单引号的字符串有两种方式:
- 用双引号包裹文件名,内部单引号无需转义:
FileName = "ABC'01myFile.xlsx" - 在单引号字符串中用**反斜杠
\**转义内部单引号:FileName = 'ABC\'01myFile.xlsx'
同时,路径字符串建议用**原始字符串r''**定义,避免反斜杠被当成转义字符:
Path = r'C:\xxx\yyy-testing\my_inner_path'
2. 用安全方式拼接路径
不要直接用+拼接,推荐两种更可靠的方式:
方式一:使用os.path.join
import os import pandas as pd Path = r'C:\xxx\yyy-testing\my_inner_path' FileName = "ABC'01myFile.xlsx" # 自动处理路径分隔符,避免拼接错误 full_path = os.path.join(Path, FileName) # 正常读取文件 mydf = pd.read_excel(full_path, engine='openpyxl', sheet_name=sheet_name)
方式二:使用pathlib(Python 3.4+推荐)
from pathlib import Path import pandas as pd base_path = Path(r'C:\xxx\yyy-testing\my_inner_path') file_name = "ABC'01myFile.xlsx" # 用/运算符拼接路径,更直观 full_path = base_path / file_name # 直接传入Path对象即可,无需转成字符串 mydf = pd.read_excel(full_path, engine='openpyxl', sheet_name=sheet_name)
原理说明
只要文件名字符串定义正确,且路径拼接格式合法,Pandas的read_excel完全支持读取含单引号的文件——报错的本质是字符串定义或路径拼接错误,而非单引号本身的问题。
内容的提问来源于stack exchange,提问作者Stan
相关产品推荐
相关产品推荐

