cszer

写python脚本常用语法

分类: 技术, python   标签:    评论: 2   阅读:3,273 views

字符串处理:

生成字符串变量

1
str='python String function'

字符串长度获取:len(str)

1
print '%s length=%d' % (str,len(str))

字母处理
全部大写:str.upper()

1
print '%s upper=%s' % (str,str.upper())

全部小写:str.lower()

1
print '%s lower=%s' % (str,str.lower())

大小写互换:str.swapcase()

1
print '%s swapcase=%s' % (str,str.swapcase())

首字母大写,其余小写:str.capitalize()

1
print '%s capitalize=%s' % (str,str.capitalize())

首字母大写:str.title()

1
print '%s title=%s' % (str,str.title())


格式化相关
获取固定长度,右对齐,左边不够用空格补齐:str.ljust(width)

1
print '%s ljust=%s' % (str,str.ljust(20))

获取固定长度,左对齐,右边不够用空格补齐:str.ljust(width)

1
print '%s rjust=%s' % (str,str.rjust(20))

获取固定长度,中间对齐,两边不够用空格补齐:str.ljust(width)

1
print '%s center=%s' % (str,str.center(20))

获取固定长度,右对齐,左边不足用0补齐

1
print '%s zfill=%s' % (str,str.zfill(20))

字符串搜索相关
搜索指定字符串,没有返回-1:str.find(‘t’)

1
2
print '%s find nono=%d' % (str,str.find('nono'))
print '%s find t=%d' % (str,str.find('t'))

指定起始位置搜索:str.find(‘t’,start)

1
print '%s find t from %d=%d' % (str,1,str.find('t',1))

指定起始及结束位置搜索:str.find(‘t’,start,end)

1
print '%s find t from %d to %d=%d' % (str,1,2,str.find('t',1,2))

从右边开始查找:str.rfind(‘t’)

1
print '%s rfind t=%d' % (str,str.rfind('t'))

搜索到多少个指定字符串:str.count(‘t’)

1
print '%s count t=%d' % (str,str.count('t'))

上面所有方法都可用index代替,不同的是使用index查找不到会抛异常,而find返回-1

1
print '%s index nono ' % (str,str.index('nono',1,2))

字符串替换相关
替换old为new:str.replace(‘old’,’new’)

1
print '%s replace t to *=%s' % (str,str.replace('t', '*'))

替换指定次数的old为new:str.replace(‘old’,’new’,maxReplaceTimes)

1
print '%s replace t to *=%s' % (str,str.replace('t', '*',1))

字符串去空格及去指定字符
去两边空格:str.strip()
去左空格:str.lstrip()
去右空格:str.rstrip()
去两边字符串:str.strip(‘d’),相应的也有lstrip,rstrip
例:

1
2
3
4
str=' python String function '
print '%s strip=%s' % (str,str.strip())
str='python String function'
print '%s strip=%s' % (str,str.strip('d'))

按指定字符分割字符串为数组:
str.split(”) :默认按空格分隔

例:

1
2
3
4
str='a b c de'
print '%s strip=%s' % (str,str.split())
str='a-b-c-de'
print '%s strip=%s' % (str,str.split('-'))

字符串判断相关
是否以start开头:str.startswith(‘start’)
是否以end结尾:str.endswith(‘end’)
是否全为字母或数字:str.isalnum()
是否全字母:str.isalpha()
是否全数字:str.isdigit()
是否全小写:str.islower()
是否全大写:str.isupper()
例:

1
2
3
4
5
6
7
8
9
10
11
12
str='python String function'
print '%s startwith t=%s' % (str,str.startswith('t'))
print '%s endwith d=%s' % (str,str.endswith('d'))
print '%s isalnum=%s' % (str,str.isalnum())
str='pythonStringfunction'
print '%s isalnum=%s' % (str,str.isalnum())
print '%s isalpha=%s' % (str,str.isalpha())
print '%s isupper=%s' % (str,str.isupper())
print '%s islower=%s' % (str,str.islower())
print '%s isdigit=%s' % (str,str.isdigit())
str='3423'
print '%s isdigit=%s' % (str,str.isdigit())
使用命令行参数

需要模块:sys
参数个数:len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[2]argv.py

1
2
3
4
import sys
print "脚本名:", sys.argv[0]
for i in range(1, len(sys.argv)):
print "参数", i, sys.argv[i]

python argv.py Hello World

脚本名:argv.py
参数 1 Hello
参数 2 World

命令行选项:
例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。
要求该脚本满足以下条件:
1.通过-i -o选项来区别参数是输入文件还是输出文件.

 python convert.py -i inputfile -o outputfile

2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息

python convert.py -h

getopt函数原形:

1
getopt.getopt(args, options[, long_options])

convert.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys,getopt
opts,args=getopt.getopt(sys.argv[1:],"hi:o:")
 
for op,val in opts:
if op=="-i":
input_file=val
elif op=="-o":
output_file=val
elif op=="-h":
usage()
sys.exit()
 
print "opts=%s" %opts
print "args=%s" %args
print "input_file=%s" %(input_file)
print "output_file=%s" %(output_file)

python conver.py -i123 -o456 dddd

1
2
3
4
opts=[('-i', '123'), ('-o', '456')]
args=['dddd']
input_file=123
output_file=456

代码解释:

  • sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。
  • “hi:o:”: 当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个”:”号。所以”hi:o:”就表示”h”是一个开关选项;”i:”和”o:”则表示后面应该带一个参数。
  • 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:选项串,附加参数。如果没有附加参数则为空串。

getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)
长选项格式举例:

1
2
--version
--file=error.txt

让一个脚本同时支持短选项和长选项

1
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])
各种类型转换

int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串

数据库操作:
1
2
3
4
5
6
7
import MySQLdb as mdb
con = mdb.connect('127.0.0.1', 'root', 'xxx', 'xxx')
sql="insert into content(title) value(%s)" %title
cur.execute(sql)
con.commit()
cur.close()
con.close()

python数据库操作详见:Python操作Mysql实例代码教程

持续更新中。。。

除非注明,文章皆由( csz )原创,转载请标明本文地址
本文地址: http://www.cszhi.com/20130808/python-grammar.html

08-08
2013

发表评论