Chaquopy在AS里初始化之后,main檔案夾下會出現一個python檔案夾,如下所示:

然后我在python檔案夾下創建了一個hello.py檔案,并且在python檔案夾下放置了一個CSV檔案,
一開始讀取方式為:
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import association_rules
from mlxtend.frequent_patterns import apriori
from os.path import dirname, join
def 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 pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import association_rules
from mlxtend.frequent_patterns import apriori
from os.path import dirname, join
def 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, join
filename = 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/249901.html
標籤:python
