shell向python传参数

想要在shell中调用python脚本时实现:

1 python pyServer.py argu1 argu2 argu3

利用 sys.argv 即可读取到 相应参数:

1 # coding=utf-8
2 import sys
3
4 if __name__ == ‘__main__‘:
5     for i in range(0,len(sys.argv)):
6         print(sys.argv[i])

改进点的话:

# coding=utf-8
import sys

def parseArgument():
    if (len(sys.argv) < 2):
        raise Exception,u"arguments needed"

    #init
    argus = {}
    argus["gameName"] = u""
    argus["bSave"] = False
    argus["bpreBuild"] = False

    #set
    argus["gameName"] = sys.argv[1]
    for i in range(2,len(sys.argv)):
        if (sys.argv[i] == ‘needSave‘):
            argus["bSave"] = True
        elif (sys.argv[i] == ‘needPreBuild‘):
            argus["bpreBuild"] = True

    return argus

if __name__ == ‘__main__‘:
    argus = parseArgument()
    print(u‘游戏名字为:{0}‘.format(argus["gameName"]))
    if argus[‘bSave‘]:
        print(u‘需要保存‘)
    else:
        print(u‘不需要保存‘)

    if argus[‘bpreBuild‘]:
        print(u‘打包预处理‘)
    else:
        print(u‘不打包预处理‘)

执行:

python test.py ox needPreBuild

结果:

游戏名字为: ox
不需要保存
打包预处理
时间: 2024-10-11 11:18:13

shell向python传参数的相关文章

shell 向python传参数,空格引发的问题

昨天用一个shell脚本,调用一个python脚本,并把shell脚本中用 time1=`date "+%Y-%m-%d %H:%M:%S"`生成的时间戳作为参数,传到python中. 方法是:python $time1 这是错误的,因为shell的变量并不是严格意义上的变量,所以这里替换后就变成了 python 2016-09-20 18:27:43 变成了2个参数,从而引发错误 解决方法:t="$time1" python $t 这时传进去就是一个参数了.

Python传参数最简单易懂的描述

关于,python的传参,很多人会搞得一头雾水,我也跟朋友讨论多次,最终通过实验,得到结论. 一.所有传递都是引用传递 二.在函数内使用[变量名]=,相当于定义啦一个局部变量 OK,一段简单的代码描述这个特性: 1 def change(s): 2 print id(s) 3 s=1 4 print id(s) 5 6 a=[2,3] 8 id(a) 9 >>24547272 10 change(a) 11 >>24547272 12 >>23655632 13 id(

Shell +Cygwinterminal+WinMySQL 传参数授权

前言:新公司因为部分业务原因有好几百组win机器装MySQL授权登录比较麻烦,简单的写了一个shell传值自动授权的脚本,保存复用. #!/bin/bash #author [email protected] function helpfunc(){ echo -e "\033[36m Please check your parameters, -D for db name, -M main library IP, -I for authorized IP address options: -D

shell调用python脚本,并且向python脚本传递参数

1.shell调用python脚本,并且向python脚本传递参数: shell中: python test.py $para1 $para2 python中: import sys def main($canshu1, $canshu2) ..... main(sys.argv[1], sys.argv[2]) 2.使用shell调用python中的函数: python脚本如下: test.py: import ConfigParser config = ConfigParser.Config

[Python]在python中调用shell脚本,并传入参数-02python操作shell实例

首先创建2个shell脚本文件,测试用. test_shell_no_para.sh 运行时,不需要传递参数 test_shell_2_para.sh 运行时,需要传递2个参数  test_shell_no_para.sh 内容如下:  test_shell_2_para.sh内容如下 注意含有变量的字符串要用 双引号 括起来 直接在命令行运行 test_shell_2_para.sh 执行结果如下: [email protected]348-G4:~$ sh test_shell_2_para

shell perl python 剖析

先不用说"无论什么语言都是一种工具".工具是我们身体的一部分,解放军解放台湾靠"小米加***"? "工具无所谓"论可以休矣.对于实际的软件工程工具和平台的选择是很重要的,有时候是致命的1. perl是强大的, perl=shell+awk+sed+一堆命令行工具.   但是反过来也一样shell+awk+sed+一堆命令行工具可以替代perl. 2. shell的简约,可读性比perl好,工具之间通过命令行stdio管道通信,任何一个小部分都可以

Shell脚本的输入参数处理

参数处理-Shell传入参数的处理 1. $# 传递到脚本的参数个数 2. $* 以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 3.脚本运行的当前进程ID号  4. $! 后台运行的最后一个进程的进程ID号  5. [email protected] 与$#相同,但是使用时加引号,并在引号中返回每个参数  6. $- 显示shell使用的当前选项,与set命令功能相同  7. $? 显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误. 变量含义: $0 

python 函数参数多种传递方法

python进阶教程之函数参数的多种传递方法 我们已经接触过函数(function)的参数(arguments)传递.当时我们根据位置,传递对应的参数.我们将接触更多的参数传递方式.回忆一下位置传递:复制代码代码如下: def f(a,b,c): return a+b+cprint(f(1,2,3)) 在调用f时,1,2,3根据位置分别传递给了a,b,c.关键字传递有些情况下,用位置传递会感觉比较死板.关键字(keyword)传递是根据每个参数的名字传递参数.关键字并不用遵守位置的对应关系.依然

def 的传参数的问题

测试了一下.关于python 的函数def里面的传参数问题: 1.传参顺序: # codig:utf-8 def function(a,b=1,*args,**kwargs): print(a,'\n',b,'\n',args,'\n',kwargs) a=666 b=520 c= '你好' d = '小白' e = '小黑' f = {'name':'小李','age':18} function(a,b,c,d,e,f,g=11,h=5,i='大哥') def func(**kwargs):