python 脚本编程积累

  • 判断传入参数的类型 可以用isinstance

   

  • 脚本中包含汉字要在文件头加上   #coding=utf-8
  • python直接读取中文路径的文件时失败,可做如下处理:

     inpath = 'D:/work/yuanxx/在线导航/驾车导航/walk_log/20130619_172355.txt'
     uipath = unicode(ipath , "utf8")

    然后用"uipath"经过编码后的路径去open()即可:

     fin = open(uipath)


  • 和shell进行交互         o,e=subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()   communicate返回标准输出和错误输出。
  • 格式化输出时可以定义临时变量,对于输出比较长的格式时容易读懂 例如:print '%(name)s    %(address)s'% {'name':'robin', 'address':'beijing'}
  • 格式化输出可以通过“-+”来控制左右对齐
  • 使用关键字变量参数的时候(字典做为函数参数),调用时,key不能用引号括起来,在函数调用的时候,key会被识别成字符串的形式。
  • 生成帮助文档,用pydoc, 格式为pydoc.py -w tScreen,pydoc.py在 python/lib下,需要添加到环境变量中,更多参考信息可以看http://docs.python.org/library/pydoc.html
  • 转换16进制的数字为10进制 int('1e0',16),将10进制的数字转换为16进制,hex(16777696)
  • 列表的复制:如果用复制的操作来复制列表,两个变量引用的都是同一个对象,例如,a = [1,2,3,4], b=a, r.remove(3),该操作也会影响到b,如果要复制到另一个对象,可以用切片操作 b=a[:]
  • 字典按照键值的大小进行排列:sorted(dict.iteritems(), key=lambda d:d[1], reverse=True)    这个操作会返回一个按照规则排列的列表
  • 通过函数的名字调用函数,当然常规的方法是通过gatattr得到对象的属性,例如:
    value = getattr(obj, "attribute")
    我还发现了另外一个方法就是利用eval,eval将字符串str当成有效Python表达式来求值,例如:定义了一个list,li = ['3nd','d','ghr','ae','vr','67'] 
    eval('li.pop')()的执行效果和li.pop是一样的
  • 时间的字符串形式表示方法,使用time.strftime可以格式化的输出各种时间。
    %a 星期几的简写                                输出例子:'Thu'
    %A 星期几的全称%A 星期几的全称      输出例子:'Thursday'
    %b 月分的简写                                   输出例子:'Jan'
    %B 月份的全称                                   输出例子:'January'
    %c 标准的日期的时间串                      输出例子:'01/17/13 07:41:47'
    %d 十进制表示的每月的第几天             输出例子:'17'
    %H 24小时制的小时                           输出例子:'07'
    %I 12小时制的小时                             输出例子:'07'
    %j 十进制表示的每年的第几天             输出例子:'017'
    %m 十进制表示的月份                        输出例子:'01'
    %M 十时制表示的分钟数                     输出例子:'45'
    %p 本地的AM或PM的等价显示             输出例子:'AM'
    %S 十进制的秒数                               输出例子:'24'
    %w 十进制表示的星期几(值从0到6,星期天为0)                       输出例子:'4'
    %x 标准的日期串                                输出例子:'01/17/13'
    %X 标准的时间串                                输出例子:'07:49:43'
    %y 不带世纪的十进制年份(值从0到99)                                       输出例子:'13'
    %Y 带世纪部分的十制年份                       输出例子:'2013'
    %z,%Z 时区名称,如果不能得到时区名称则返回空字符。                       输出例子:'\xd6\xd0\xb9\xfa\xb1\xea\xd7\xbc\xca\xb1\xbc\xe4' 使用print打印可以得到 “中国标准时间”
  • 从函数内部获取当前函数名的方法:  sys._getframe().f_code.co_name
  • 固定宽度的居中打印,靠右打印,靠左打印

不废话了,直接上例子吧


 foreachStr in inputStrList:

         #print '{:->10}'.format(eachStr);
         print '{0:->10}' . format (eachStr);
         # -------abc
         # ------abcd
         # -----abcde
 
     for eachStr in inputStrList:
         print '{0:-<20}' . format (eachStr);
         # abc-----------------
         # abcd----------------
         # abcde---------------
     
     for eachStr in inputStrList:
         print '{0:*^30}' . format (eachStr);
         # *************abc**************
         # *************abcd*************
         # ************abcde*************

你可能感兴趣的:(编程,python,command,脚本,hex)