如何通过Python的xlsxwriter Workbook对象获取Excel工作簿路径?
获取XlsxWriter Workbook对象的文件路径
嘿,这个问题问得很到位!我之前也纠结过xlsxwriter有没有类似VBA里Workbook.Path的属性,刚好可以给你讲讲:
xlsxwriter的Workbook对象并没有直接提供一个叫Path的属性,但我们可以通过它内置的filename属性结合路径处理工具来实现相同的效果,比你之前用os.getcwd()拼接的方式更规范:
方法1:获取完整文件路径
Workbook实例的filename属性会保存你创建对象时传入的文件名(不管是相对路径还是绝对路径)。如果是相对路径,用os.path.abspath()就能转换成当前工作目录下的绝对路径:
import xlsxwriter import os myName = 'hello.xlsx' wbk = xlsxwriter.Workbook(myName) # 获取完整文件路径 full_file_path = os.path.abspath(wbk.filename) print(full_file_path) # 输出结果和os.getcwd()+'\\'+myName完全一致
方法2:仅获取文件所在目录(对应VBA的wbk.Path)
如果你只需要文件所在的文件夹路径,和VBA里Workbook.Path的功能匹配,可以用os.path.dirname()处理上面的完整路径:
# 获取文件所在目录路径 file_dir_path = os.path.dirname(os.path.abspath(wbk.filename)) print(file_dir_path) # 这就等价于VBA里的wbk.Path
额外说明
- 如果你创建
Workbook时传入的是绝对路径(比如C:\\docs\\hello.xlsx),那wbk.filename本身就是绝对路径,直接使用即可,不需要再用abspath转换。 - 用
os.path模块的方法处理路径更跨平台,能自动适配Windows和Linux/macOS的路径分隔符,比手动拼接字符串更可靠。
内容的提问来源于stack exchange,提问作者Vityata
相关产品推荐
相关产品推荐

