Julia中如何通过相对路径读取子文件夹文件?含XLSX包报错问题
文件夹路径访问与XLSX.jl读取报错解决方案
嘿,我来帮你搞定这两个问题——路径导航和XLSX包的读取报错:
一、文件夹路径访问问题
先明确你的目录结构:
folder └── subfolder_1 └── subfolder_2
1. 从folder目录访问subfolder_1中的文件
直接使用相对路径即可,比如subfolder_1里有个example.xlsx,你可以这样写路径:
subfolder_1/example.xlsx
如果用绝对路径的话,就是你的系统里folder的完整路径加上/subfolder_1/example.xlsx,但相对路径更灵活,推荐使用。
2. 从subfolder_2目录访问subfolder_1中的文件
subfolder_2是subfolder_1的子目录,所以需要返回上一级目录,用../表示父目录。比如要访问subfolder_1里的example.xlsx,路径就是:
../example.xlsx
如果要访问subfolder_1里的其他子文件夹,比如subfolder_1/docs/note.txt,那路径就是../docs/note.txt。
二、XLSX.jl读取报错「MethodError: no method matching readtable(::String...)」
这个报错大概率是因为你用了旧版本的方法名——readtable在新版XLSX.jl里已经被弃用或者改名了,现在正确的读取流程应该是这样的:
正确的读取步骤(以读取Excel文件并转成DataFrame为例):
# 先加载必要的包 using XLSX using DataFrames # 如果需要转成DataFrame的话 # 1. 读取整个Excel文件 xlsx_file = XLSX.readxlsx("你的文件路径") # 替换成前面说的相对/绝对路径 # 2. 获取指定工作表的表格数据 # 方式1:通过工作表索引(比如第一个工作表) table_data = XLSX.gettable(xlsx_file[1]) # 方式2:通过工作表名称(比如"Sheet1") table_data = XLSX.gettable(xlsx_file["Sheet1"]) # 3. 转成DataFrame(如果需要) df = DataFrame(table_data)
报错原因说明
readtable是旧版XLSX.jl的方法,现在官方已经改用readxlsx读取整个文件,再用gettable提取表格内容,所以替换成上面的写法就能解决这个MethodError啦。
内容的提问来源于stack exchange,提问作者Georgery
相关产品推荐
相关产品推荐

