我在这里尝试进行概念验证: 使用Chaquopy 4.0.0(我使用python 2.7.15),我试图使用Python将字符串写入特定文件夹(getFilesDir())中的文件,然后通过Android读取。
要检查文件是否已写入,我正在检查文件的长度(请参见下面的代码)。
我希望长度大于0(以验证文件确实已写入特定位置),但是我一直保持0。 任何帮助将不胜感激!
main.py:
import os.path
save_path = "/data/user/0/$packageName/files/"
name_of_file = raw_input("test")
completeName = os.path.join(save_path, name_of_file+".txt")
file1 = open(completeName, "w")
toFile = raw_input("testAsWell")
file1.write(toFile)
file1.close()
OnCreate:
if (! Python.isStarted()) {
Python.start(new AndroidPlatform(this));
File file = new File(getFilesDir(), "test.txt");
Log.e("TEST", String.valueOf(file.length()));
}```
答案 0 :(得分:0)
尚不清楚您是否基于console example构建应用,因此我将针对这两种情况给出答案。
如果您已基于控制台示例创建应用,则onCreate
中的代码将在main.py
中的代码之前运行,并且该文件将不存在第一次开始活动。它应该第二次存在:如果仍然不存在,请尝试使用Android Studio file explorer来查看文件目录中的内容。
如果您没有基于控制台示例创建应用,则需要手动执行main.py
,如下所示:
Python.getInstance().getModule("main");
此外,如果没有控制台示例提供的输入UI,您将无法从stdin中读取任何内容。因此,您需要执行以下操作之一:
raw_input
调用。