【问题标题】:Passing commandline arguments to QPython将命令行参数传递给 QPython
【发布时间】:2015-06-09 22:49:26
【问题描述】:

我正在使用 QPython 和 QPython3 在我的 android 手机上运行一个用 python 编写的简单客户端-服务器程序。我需要传递一些命令行参数。我该怎么做?

【问题讨论】:

    标签: qpython qpython3


    【解决方案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中看到脚本了。

      【讨论】:

        猜你喜欢
        • 2017-10-22
        • 2019-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-13
        相关资源
        最近更新 更多