将命令行参数传递给 QPython
Posted
技术标签:
【中文标题】将命令行参数传递给 QPython【英文标题】:Passing commandline arguments to QPython 【发布时间】:2015-06-09 22:49:26 【问题描述】:我正在使用 QPython 和 QPython3 在我的 android 手机上运行一个用 python 编写的简单客户端-服务器程序。我需要传递一些命令行参数。我该怎么做?
【问题讨论】:
【参考方案1】:我找到了几种运行从我的 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
错误后)我可以通过使用 sys.exit(1)
退出 Python 控制台来访问可用的 Linux shell:
import sys
sys.exit(1)
让我进入带有/
目录的shell。更改目录
cd /storage/emulated/0/Download # or to the scripts3 directory
让我直接运行那个原始脚本
python frets.py -a ...
此 shell 具有必要的权限和$PATH
(/data/data/com.hipipal.qpy3/files/bin
)。
(我在手机上运行时遇到了问题,但更新 Qpython3 解决了这个问题。)
【讨论】:
【参考方案2】:只需编写一个包装脚本,获取参数并使用 execfile 等函数传递给真实脚本,然后将脚本放入 /sdcard/com.hipipal.qpyplus/scripts 或 /sdcard/com.hipipal.qpyplus/scripts3 (对于 qpython3)。
然后点击开始按钮就可以在scripts中看到脚本了。
【讨论】:
以上是关于将命令行参数传递给 QPython的主要内容,如果未能解决你的问题,请参考以下文章