1

我在这里尝试进行概念验证:使用 Chaquopy 4.0.0(我使用 python 2.7.15),我正在尝试使用 Python 将字符串写入特定文件夹(getFilesDir())中的文件,然后通过 Android 读取。

为了检查文件是否被写入,我正在检查文件的长度(见下面的代码)。

我希望得到任何长度大于 0(以验证文件确实已写入特定位置),但我一直得到 0。任何帮助将不胜感激!

主要.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()

创建时:

if (! Python.isStarted()) {
    Python.start(new AndroidPlatform(this));
    File file = new File(getFilesDir(), "test.txt");
    Log.e("TEST", String.valueOf(file.length()));
}```
4

1 回答 1

0

目前尚不清楚您的应用程序是否基于控制台示例,因此我将针对这两种情况给出答案。

如果您应用程序基于控制台示例,那么 in 中的代码onCreate将在 in 中的代码之前运行main.py,并且在您第一次启动 Activity 时该文件将不存在。它应该存在第二次:如果仍然不存在,请尝试使用Android Studio 文件资源管理器查看 files 目录中的内容。

如果您的应用程序没有基于控制台示例,那么您需要main.py手动执行,如下所示:

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

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

  • 将您的应用程序基于控制台示例;或者
  • raw_input用硬编码的文件名和内容替换调用;或者
  • 使用文本框或其他东西创建一个普通的 Android UI,并以这种方式从用户那里获取输入。
于 2019-05-31T12:30:37.510 回答