使用chaquopy 4.0.0将字符串写入特定目录

时间:2019-05-31 10:25:06

标签: chaquopy

我在这里尝试进行概念验证: 使用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()));
}```

1 个答案:

答案 0 :(得分:0)

尚不清楚您是否基于console example构建应用,因此我将针对这两种情况给出答案。

如果您基于控制台示例创建应用,则onCreate中的代码将在main.py中的代码之前运行,并且该文件将不存在第一次开始活动。它应该第二次存在:如果仍然不存在,请尝试使用Android Studio file explorer来查看文件目录中的内容。

如果您没有基于控制台示例创建应用,则需要手动执行main.py,如下所示:

Python.getInstance().getModule("main");

此外,如果没有控制台示例提供的输入UI,您将无法从stdin中读取任何内容。因此,您需要执行以下操作之一:

  • 基于控制台示例构建您的应用。
  • 用硬编码的文件名和内容替换raw_input调用。
  • 使用文本框或类似内容创建普通的Android UI,然后以这种方式从用户那里获取输入。