python查找指定字符

#!/usr/bin/env python

import sys
import re f = open("log.txt", "rb")
info = open("info.txt", "ab")
for line in f.readlines():
if re.search(sys.argv[1], line):
info.write(line)
info.close()
f.close()

当形参如*arg时表示传入数组,当形参如**args时表示传入键值对。

1
2
3
4
5
6
def myprint(*commends,**map): 
 for comm in commends: 
 print comm 
 for key in map.keys(): 
 print key,map[key] 
myprint("hello","word",username="tian",name="wei")

输出:

1
2
3
4
hello
word
username tian
name wei

python中定义一个函数,可以通过正常的只传入值或key-value的方法调用。但是如果第一个时参数传入的是key-value的方法,那么后面的必须都是key-value方法,如果第一个不是,那么后面的可以根据情况再传入值就可以了。

例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def parrot(voltage="fff",state='a stiff',action='voom',type='Norwegian Blue'):
 print "-- This parrot wouldn't", action, 
 print "if you put", voltage, "volts through it."
 print "-- Lovely plumage, the", type 
 print "-- It's", state, "!"
parrot(1000)#可以 
parrot(action = 'VOOOOOM', voltage = 1000000)
#可以,都是key-value方法 
parrot('a thousand', state = 'pushing up the daisies')
#可以,第一个实参为直接传入法,后面无所谓了 
parrot('a million', 'bereft of life', 'jump')
#可以,都是传值,而且由于形参都有默认值,则按顺序一个个替换 
parrot(voltage="33","ff","abc")
# 不可以,第一个为Key-value传值法,以后的都必须是

Python新手入门,在python中函式定义主要有四种方式:

① F(arg1,arg2,...),最常见的定义方式,一个函式可以定义任何个参数,每个参数间用逗号分割,用这种参数在调用的时候必须在函式名后面的小括号中提供个数相等的值(实参),并且顺序必须相同,形参与实参一一对应

1
2
def a(x,y):
  print x,y

调用a函式,a(1,2)则x=1,y=2,如果a(1)或者a(1,2,3)则会出错

② F(arg1,arg2=value2,...agrN=valueN),则将为函式提供默认值。

1
2
def a(x,y=3):
  print x,y

调用该函式,a(1,2)则x=1,y=2,如果a(1)不会导致错误,此时x=1,y=3,y值将使用默认值,a(y=4,x=2)同理

可变参数:

③ F(*arg1),以一个*加形参的方式来表示函式的实参个数不确定,参数个数>=0,采用这样的方式定义函式,在函式内部将以实参名的方式构建一个元组(tuple)

1
2
3
4
5
6
7
8
9
10
11
12
def a(*x): 
  # 定义一个名为x的元组
 
def a(*t): 
  print x
 
>>>a(1)
(1,)
>>>a()
None
>>>a(1,2,3)
(1,2,3)

遍历该元组(计算总和)的一种方式,此时r定义为一元组:

1
2
3
4
5
def y(*r):
  x = 0
  for t in r:
    x += t
  print x

④ F(**arg)形参名前加2个**表示在函式内部将被存放在以形参名为标识符的dictionary,这时调用将使用arg1=value1,arg2=value2...

1
2
3
4
5
6
7
8
9
def a(**b): 
  print b
 
>>>a()
None
>>>a(x=1,y=2)
{'y':2,'x':1}
#注意遍历返回的顺序与形参位置顺序相反
>>>a(1,2) #error

可通过以下方式来获取预期键值对,如果形参是未定义'y'的键,将返回None

1
2
3
4
5
6
7
8
9
def a(**x): 
  print x.get('y')
 
>>>a(x=1,y=2)
2
>>>a(x=1)
None
>>>a(x=1,b=2)
None

Python参数调用过程按照以上四种方法优先级依次降低。

①方式解析,然后是②中的arg=value方式,再分别按照③>④优先级传参

以上函式命名不符合规范,仅用于简单标识说明,使用python 2.6.2

  1. <span style="font-weight: bold; ">python获取脚本传递参数:</span>
  1. import sys
  2. print sys.argv[0] ##脚本名
  3. print sys.argv[1] ## 第一个参数
  1. print sys.argv  ###参数数组
  1. print len(sys.argv)  ##参数个数

python 检查文件是否存在:

  1. import os
  2. as_uniq_info="/home/mtr_dir/auto_mtr/mtr_data/2012-09-26/tw/as_uniq_info"
  3. if(os.path.isfile(as_uniq_info)):
  4. print as_uniq_info + "exist!!!"
  5. else:
  6. print "File not exist!!!!"

os.path.exists(as_uniq_info)

python退出脚本:

  1. import sys
  2. sys.exit(0) ##正常退出
  3. sys.exit(1)##非正常退出

python检查变量是否在在:

  1. def fn():
  2. try:
  3. a=0
  4. b = open("1.py")
  5. raise "11"  #这个异常不是必然发生,我这里只是假设
  6. c = open("2.py")
  7. except:
  8. d= locals()
  9. if 'b' in d:
  10. b.close()
  11. if 'c' in d:
  12. c.close()
  13. if __name__ == "__main__":
  14. fn()

或:

  1. 第一种方法:
  2. 'var'   in   locals().keys()
  3. 第二种方法:
  4. try:
  5. print   var
  6. except   NameError:
  7. print   'var   not   defined'
  8. 第三种方法:
  9. 'var'   in   dir()

转自http://blog.csdn.net/ysdaniel/article/details/8026126

python 脚本传递参数的更多相关文章

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

    1.shell调用python脚本,并且向python脚本传递参数: shell中: python test.py $para1 $para2 python中: import sys def main ...

  2. java调用python脚本并向python脚本传递参数

    1.安装Eclipse 先安装jdk,再安装Eclipse,成功后开始建立py_java项目,在这个项目的存储目录SRC下建立test包,在test包中New-Class,新建MyDemo类,建好完成 ...

  3. python脚本传递参数

    给python程序传递参数 运行python脚本时有时需要执行实传递参数 在linux下: [root@Test ~]# cat /opt/python.py #!/usr/local/bin/pyt ...

  4. 【hadoop】如何向map和reduce脚本传递参数,加载文件和目录

    本文主要讲解三个问题:       1 使用Java编写MapReduce程序时,如何向map.reduce函数传递参数.       2 使用Streaming编写MapReduce程序(C/C++ ...

  5. (转)如何向map和reduce脚本传递参数

    [MapReduce] 如何向map和reduce脚本传递参数,加载文件和目录 分类: hadoop2014-04-28 21:30 1553人阅读 评论(0) 收藏 举报 hadoop 本文主要讲解 ...

  6. 如何向map和reduce脚本传递参数,加载文件和目录

    本文主要讲解三个问题:       1 使用Java编写MapReduce程序时,如何向map.reduce函数传递参数.       2 使用Streaming编写MapReduce程序(C/C++ ...

  7. PowerShell脚本传递参数

    在编写PowerShell脚本的时候,可以通过给变量赋值的方法输出想要的结果,但这样的话,需要改动脚本内容.其实也可以在脚本中定义参数,然后再在执行脚本的时候对参数赋值,而无需改动脚本内容. 在Pow ...

  8. linux shell编程指南第二十章------向脚本传递参数

    前面已经讲到如何使用特定变量$ 1 . . $ 9向脚本传递参数.$ #用于统计传递参数的个数.可 以创建一个u s a g e语句,需要时可通知用户怎样以适当的调用参数调用脚本或函数. 简单地说,下 ...

  9. shell变量自增 || Python脚本接收参数

    一.shell变量自增a=1a=$(($a+1))a=$[$a+1]a=`expr $a + 1`let a++ let a+=1 ((a++)) echo $a 二.python脚本接收参数 fro ...

随机推荐

  1. CentOS安装solr 4.10.3

    Solr是什么? Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索 ...

  2. Radar之字节流加载图片

    获取GUITexture GameObject _obj = GameObject.Find("Tex1"); GUITexture _tex = _obj.GetComponen ...

  3. 关于socket tcp 断线重连

    这个问题困扰过我几次,都没有来得及研究,今天研究一下. 首先写一个最简易的socket tcp程序,连接成功后再关闭服务器然后再用客户端各种操作看是什么情况 测试表明 (1)客户端已经连接,当服务端关 ...

  4. 如何查看PowerShell版本

    Click Start, click All Programs, click Accessories, click Windows PowerShell, and then click Windows ...

  5. How To Use RUN_PRODUCT In Oracle Forms

    Run_Product is used to run Oracle Reports (RDF/REP files) in Oracle Forms. It invokes one of the sup ...

  6. Know How To Use ID_NULL Function To Search An Object In Oracle Forms

    ID_NULL built in function is used to determine that an object type variable is null or not null in O ...

  7. Maven 3.3.9在Windows上的安装

    开始学Maven了,可是我一个项目都木有做过.听过Maven 的大名,用来构建项目的. 下面记录下我安装Maven的过程 1.确认电脑上安装了JDK 在cmd下执行下列命令: java –versio ...

  8. Spring Web Flow使用

    就当我写(嘘,抄)着玩的. 使用Spring框架的一个子项目--Spring Web Flow来建立和管理Web应用和UI流程. 第一节:使用Spring Web Flow在一个Spring MVC应 ...

  9. 6.Type and Member Basics

    1.The Different Kinds of Type Members 1.Constants:a symbol that identifies a never-changing data val ...

  10. ubuntu14.04换一个更快的源

    mirrors.yun-idc.com,这个源可比ubuntu自带的源快多了,我的source.list文件内容如下: deb http://mirrors.yun-idc.com/ubuntu/ t ...