Я запускаю простую клиент-серверную программу, написанную на python, на моем телефоне Android с использованием QPython и QPython3. Мне нужно передать некоторые параметры командной строки. Как мне это сделать?Передача аргументов командной строки в QPython
ответ
Просто напишите сценарий оболочки, который получает параметры и передает реальный скрипт, используя некоторую функцию, например execfile, и помещает скрипт в /sdcard/com.hipipal.qpyplus/scripts или /sdcard/com.hipipal.qpyplus/ scripts3 (для qpython3).
Затем вы можете увидеть сценарий в сценариях при нажатии кнопки «Пуск».
Я нашел пару способов запуска сценария, который я импортировал с моего ноутбука Linux.
Если я ставлю frets.py
в каталоге script3
и создать этот скрипт в том же каталоге:
import sys, os
dir = '/storage/emulated/0/com.hipipal.qpyplus/scripts3/'
os.chdir(dir)
def callfrets(val):
os.system(sys.executable+" frets.py " + val)
while True:
val = input('$:')
if val:
callfrets(val)
else:
break
Я могу запустить программу с теми же командной строки входов, которые я использовал в Linux, получить выход на консоли , Просто вызовите этот скрипт из редактора или меню programs
.
Я также нашел (после получения некоторых argparse
ошибок), что я могу получить в работоспособную оболочку Linux с помощью помнятся консоли Python с sys.exit(1)
:
import sys
sys.exit(1)
капель меня в оболочку с каталогом /
. Изменение каталога
cd /storage/emulated/0/Download # or to the scripts3 directory
позволяет мне запустить этот оригинальный сценарий непосредственно
python frets.py -a ...
Эта оболочка имеет необходимые permisions и $PATH
(/data/data/com.hipipal.qpy3/files/bin
).
(У меня были проблемы с работой над моим телефоном, но обновление Qpython3 позаботилось об этом.)