Kivy使用pandas读取CSV文件 打包APK在Android运行时提示文件不存在怎么办
解决方案
核心问题原因:安卓应用运行时的默认工作目录并非应用资源的存放目录,直接使用相对路径无法定位到打包进APK的文件,必须构造绝对路径访问,同时要确保CSV文件被正确打包到APK的资源目录中。
1. 校验打包配置
若使用Buildozer工具编译APK,打开项目根目录的buildozer.spec文件,调整以下配置确保CSV文件被纳入打包范围:
- 单独引入指定CSV文件,修改
source.include_files配置项:source.include_files = canais_cgepb.csv - 批量引入所有CSV格式文件,修改
source.include_exts配置项,将csv加入允许的后缀列表:source.include_exts = py,png,jpg,kv,atlas,csv
配置修改完成后保存,重新编译APK生效。
2. 修改文件读取逻辑
代码中需要先获取当前脚本所在的绝对路径,再拼接CSV文件名构造完整访问路径,修改后的代码如下:
import os def set_dataset(self): # 获取当前脚本所在目录的绝对路径 current_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接得到CSV文件的完整路径 csv_full_path = os.path.join(current_dir, 'canais_cgepb.csv') cgpb = pd.read_csv(csv_full_path, decimal=',') self.dataset = cgpb
上述方法同时兼容本地开发环境和安卓端运行场景,不需要额外适配。
内容的提问来源于stack exchange,提问作者culpinha
相关产品推荐
相关产品推荐

