我是Python新手,所以浪费我的时间。但这是一个简单的问题。我有一个python程序如下。
import time
import os
import subprocess
def camera_play(cmd):
if cmd == 1:
cmd = 'raspistill --nopreview -w 640 -h 480 -q 5 -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th 0:0:0 &'
pid = subprocess.call(cmd, shell = True)
cmd1 = 'LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i "input_file.so -f /tmp/stream -n pic.jpg" -o "output_http.so -w /usr/local/www"'
pid1 = subprocess.call(cmd1, shell = True)
elif cmd == 0:
pid.kill()
pid1.kill()
我使用Pyinstaller
创建了exe程序。如何使用输入参数从命令行运行该exe。
我像
camera_play 1
camera_play -i 1
它不起作用。感谢
答案 0 :(得分:1)
当您在Linux下运行时,您不必创建exe文件。 你的代码不会做任何事情,因为只有一个函数,但它永远不会被调用。
定义后必须使用此功能。
#!/usr/bin/python
import...
def camera_play(cmd):
...
if len(sys.argv)>1:
cmd = sys.argv[1]
else:
cmd = WHAT YOU WANT???
camera_play(cmd)
要从命令行调用脚本,您有两种可能:
python myscript
或
./myscript
请注意,cmd似乎接受1或0这很奇怪!如果0,pid vars不会存在! 你必须认真思考你想要做什么。 你也可以考虑使用subprocess.Popen
答案 1 :(得分:0)
看看这个链接(http://www.tutorialspoint.com/python/python_command_line_arguments.htm),你有两个问题:
在文件末尾你需要这样的东西:
if __name__ == "__main__":
camera_play(sys.argv[1])
这与文件顶部的#!/ bin / python结合使用,具有正确的unix可执行权限,应允许您从带命令的命令行运行它。