Запись строки в конкретный каталог с помощью chaquopy 4.0.0 - PullRequest
1 голос
/ 31 мая 2019

Я пытаюсь проверить концепцию здесь: Используя Chaquopy 4.0.0 (я использую python 2.7.15), я пытаюсь записать строку в файл в определенной папке (getFilesDir ()), используя Python, а затем читать через 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 голосов
/ 31 мая 2019

Не ясно, основано ли ваше приложение на примере консоли , поэтому я дам ответ на оба случая.

Если у вас есть Если приложение основано на примере консоли, то код в onCreate будет выполняться до кода в main.py, и файл не будет существовать при первом запуске действия.Он должен существовать во второй раз: если он все еще не существует, попробуйте использовать *1000* обозреватель файлов Android Studio , чтобы увидеть, что находится в каталоге файлов.

Если у вас нет на основе вашего приложения на примере консоли, вам нужно будет выполнить main.py вручную, например:

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

Кроме того, без входного пользовательского интерфейса, который предоставляет пример консоли, вы не будетебыть в состоянии прочитать что-нибудь из стандартного ввода.Таким образом, вам нужно будет выполнить одно из следующих действий:

  • Основывать свое приложение на примере консоли;или
  • Замените вызовы raw_input жестко запрограммированным именем файла и содержимым;или
  • Создайте обычный пользовательский интерфейс Android с текстовым полем или чем-то подобным и получайте от пользователя информацию таким образом.
...