将命令行参数传递给 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的主要内容,如果未能解决你的问题,请参考以下文章

将命令行参数传递给函数

如何将命令行参数传递给构建的 Mix Release

如何将命令行参数传递给 c 程序

如何将命令行参数传递给 WinForms 应用程序?

将命令行参数传递给 AWS Fargate 容器

将命令行参数传递给调用带有装饰器参数的装饰函数的函数