Chaquopy读取Android项目python目录下的文件
16lz
2021-01-26
Chaquopy在AS里初始化之后,main文件夹下会出现一个python文件夹,如下所示:
然后我在python文件夹下创建了一个hello.py文件,并且在python文件夹下放置了一个CSV文件。
一开始读取方式为:
import pandas as pdfrom mlxtend.preprocessing import TransactionEncoderfrom mlxtend.frequent_patterns import association_rulesfrom mlxtend.frequent_patterns import apriorifrom os.path import dirname, joindef finals(): df = pd.read_csv("df_politics.csv" encoding='utf8', dtype=str) df_arr = df.values.tolist()
结果报错如下:
Caused by: com.chaquo.python.PyException: FileNotFoundError: [Errno 2] File b'df_politics.csv' does not exist: b'df_politics.csv' at <python>.pandas._libs.parsers.TextReader._setup_parser_source(parsers.pyx:689) at <python>.pandas._libs.parsers.TextReader.__cinit__(parsers.pyx:382) at <python>.pandas.io.parsers.__init__(parsers.py:1917) at <python>.pandas.io.parsers._make_engine(parsers.py:1135) at <python>.pandas.io.parsers.__init__(parsers.py:895) at <python>.pandas.io.parsers._read(parsers.py:457) at <python>.pandas.io.parsers.parser_f(parsers.py:685) at <python>.hello.finals(hello.py:10)
可以明显看到是FileNotFoundError错误。
改正如下:
import pandas as pdfrom mlxtend.preprocessing import TransactionEncoderfrom mlxtend.frequent_patterns import association_rulesfrom mlxtend.frequent_patterns import apriorifrom os.path import dirname, joindef finals(): filename = join(dirname(__file__), "df_politics.csv") print(filename) df = pd.read_csv(filename, encoding='utf8', dtype=str) df_arr = df.values.tolist()
其中文件名为:
filename = join(dirname(__file__), "df_politics.csv")
输出一下filename:
/data/user/0/com.example.pythontest/files/chaquopy/AssetFinder/app/df_politics.csv
查Chaquopy官方文档:
在Chaquopy 6.3.0和更高版本中,您可以使用相对于__file__的路径访问数据文件。例如,如果数据文件与Python文件位于同一目录中:
from os.path import dirname, joinfilename = join(dirname(__file__), "df_politics.csv")
如果数据文件和Python文件位于不同的目录中,请相应地更改相对路径。例如,如果Python文件为:
src/main/python/alpha/hello.py
数据文件为:
src/main/python/bravo/df_politics.csv
则替换df_politics.csv为:
../bravo/df_politics.csv
更多相关文章
- 一句话锁定MySQL数据占用元凶
- 关于android 数据库SQLite的使用日记
- Android(安卓)Studio的应用与快捷键
- 【Android】LiveData 用法及源码解析
- android lint的使用
- Android———ContentProvider理解与使用
- NDK 开发指南---Android(安卓)NDK概览
- Android中ListView,SQLite,BaseAdapter的结合
- Android(安卓)studio for mac 的一些常用快捷键