打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
中秋不吃月饼,复习一些常用函数


中秋也来学习这么干的干货,给你点个赞先!收藏了慢慢看,都是一些比较常用的函数。根据网络资源整理。


1. 常用内置函数:(不用import就可以直接使用)

help(obj):在线帮助, obj可是任何类型
callable(obj):查看一个obj是不是可以像函数一样调用
repr(obj):得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝
eval_r(str):表示合法的python表达式,返回这个表达式
dir(obj):查看obj的name space中可见的name
hasattr(obj,name):查看一个obj的name space中是否有name
getattr(obj,name):得到一个obj的name space中的一个name
setattr(obj,name,value):为一个obj的name space中的一个name指向value这个object
delattr(obj,name):从obj的name space中删除一个name
vars(obj):返回一个object的name space。用dictionary表示
locals():返回一个局部name space,用dictionary表示
globals():返回一个全局name space,用dictionary表示
type(obj):查看一个obj的类型
isinstance(obj,cls):查看obj是不是cls的instance
issubclass(subcls,supcls):查看subcls是不是supcls的子类

类型转换函数

chr(i):把一个ASCII数值,变成字符
ord(i):把一个字符或者unicode字符,变成ASCII数值
oct(x):把整数x变成八进制表示的字符串
hex(x):把整数x变成十六进制表示的字符串
str(obj): 得到obj的字符串描述
list(seq): 把一个sequence转换成一个list
tuple(seq): 把一个sequence转换成一个tuple
dict(),dict(list): 转换成一个dictionary
int(x): 转换成一个integer
long(x): 转换成一个long interger
float(x): 转换成一个浮点数
complex(x): 转换成复数

用于执行程序的内置函数

complie 如果一段代码经常要使用,那么先编译,再运行会更快。

2. 和操作系统相关的调用

系统相关的信息模块 import sys

sys.argv是一个list,包含所有的命令行参数.
sys.stdout sys.stdin sys.stderr 分别表示标准输入、输出、错误输出的文件对象.
sys.stdin.readline() 从标准输入读一行
sys.stdout.write(“a”) 屏幕输出a
sys.exit(exit_code) 退出程序
sys.modules 是一个dictionary,表示系统中所有可用的module
sys.platform 得到运行的操作系统环境
sys.path 是一个list,指明所有查找module,package的路径.

操作系统相关的调用和操作 import os

os.environ 一个dictionary 包含环境变量的映射关系 

os.environ[“HOME”] 可以得到环境变量HOME的值
os.chdir(dir) 改变当前目录 

os.chdir(‘d:\outlook’) 注意windows下用到转义

os.getcwd() 得到当前目录

os.getegid() 得到有效组id  os.getgid() 得到组id
os.getuid() 得到用户id  os.geteuid() 得到有效用户id
os.setegid os.setegid() os.seteuid() os.setuid()
os.getgroups() 得到用户组名称列表
os.getlogin() 得到用户登录名称
os.getenv 得到环境变量
os.putenv 设置环境变量
os.umask 设置umask
os.system(cmd) 利用系统调用,运行cmd命令

操作举例:

os.mkdir('/tmp/xx')
os.system('echo 'hello' > /tmp/xx/a.txt')
os.listdir('/tmp/xx')
os.rename('/tmp/xx/a.txt','/tmp/xx/b.txt')
os.remove('/tmp/xx/b.txt')
os.rmdir('/tmp/xx')

用python编写一个简单的shell

#!/usr/bin/python
import os, sys
cmd = sys.stdin.readline()
while cmd:
 os.system(cmd)
 cmd = sys.stdin.readline()

用os.path编写平台无关的程序

os.path.abspath(“1.txt”) == os.path.join(os.getcwd(), “1.txt”)
os.path.split(os.getcwd()) 用于分开一个目录名称中的目录部分和文件名称部分。
os.path.join(os.getcwd(), os.pardir, ‘a’, ‘a.doc’) 全成路径名称。
os.pardir 表示当前平台下上一级目录的字符 ..
os.path.getctime(“/root/1.txt”)  返回1.txt的ctime(创建时间)时间戳
os.path.exists(os.getcwd()) 判断文件是否存在
os.path.expanduser(‘~/dir’) 把~扩展成用户根目录
os.path.expandvars(‘$PATH’) 扩展环境变量PATH
os.path.isfile(os.getcwd()) 判断是否是文件名,1是0否
os.path.isdir(‘c:\Python26\temp’) 判断是否是目录,1是0否
os.path.islink(‘/home/admin/111.sql’) 是否是符号连接 windows下不可用
os.path.ismout(os.getcwd()) 是否是文件系统安装点 windows下不可用
os.path.samefile(os.getcwd(), ‘/home/admin’) 看看两个文件名是不是指的是同一个文件
os.path.walk(‘/home/admin’, test_fun, “a.c”)  遍历/home/admin下所有子目录包括本目录,对于每个目录都会调用函数test_fun。

例:在某个目录中,和它的所有子目录中查找名称是a.c的文件或目录。

def test_fun(filename, dirname, names):
# filename即是walk中的a.c dirname是访问的目录名称
 if filename in names:
 ## names是一个list,包含dirname目录下的所有内容
   print os.path.join(dirname, filename)
     os.path.walk('/home/huaying', test_fun, 'a.c')

3. 文件操作

打开文件

f = open(“filename”, “r”) r只读 w写 rw读写 rb读二进制 wb写二进制 w+写追加

读写文件

f.write(“a”) f.write(str) 写一字符串 f.writeline() f.readlines() 与下read类同
f.read() 全读出来 f.read(size) 表示从文件中读取size个字符
f.readline() 读一行,到文件结尾,返回空串. f.readlines() 读取全部,返回一个list. list每个元素表示一行,包含”\n”\
f.tell() 返回当前文件读取位置
f.seek(off, where) 定位文件读写位置。off表示偏移量,正数向文件尾移动,负数表示向开头移动。where为0表示从开始算起,1表示从当前位置算,2表示从结尾算。
f.flush() 刷新缓存

关闭文件

f.close()

4. 正则表达式 import re

简单的regexp

p = re.compile('abc')if p.match('abc'):  print 'match'

上例中首先生成一个pattern(模式),如果和某个字符串匹配,就返回一个match object
除某些特殊字符metacharacter元字符,大多数字符都和自身匹配。

这些特殊字符是:^ $ * + ? { [ ] \ | ( )

字符集合(用[]表示)

列出字符,如[abc]表示匹配a或b或c,大多数metacharacter在[]中只表示和本身匹配。例如:


a = '.^$*+?{\\|()'  # 大多数metachar在[]中都和本身匹配,但'^[]\'不同

p = re.compile('['+a+']')
for i in a:
  if p.match(i):
    print '[%s] is match' %i
  else:
    print '[%s] is not match' %i

在[]中包含[]本身,表示”[“或者”]”匹配。用[和]表示。

^出现在[]的开头,表示取反。[^abc]表示除了a,b,c之外的所有字符。

-可表示范围.[a-zA-Z]匹配任何一个英文字母。[0-9]匹配任何数字。

\在[]中的妙用。

\d [0-9]
\D [^0-9]
\s [ \t\n\r\f\v]
\S [^ \t\n\r\f\v]
\w [a-zA-Z0-9]
\W [^a-zA-Z0-9
]

\t 表示和tab匹配, 其他的都和字符串的表示法一致
\x20 表示和十六进制ascii 0x20匹配

有了\,可以在[]中表示任何字符。注:单独的一个”.”如果没有出现在[]中,表示除了换行 \n 以外的匹配任何字符,类似[^\n]。

regexp的重复

{m,n}表示出现m个以上(含m个),n个以下(含n个)。如ab{1,3}c和abc,abbc,abbbc匹配,不会与ac、abbbc匹配。

m是下界,n是上界。m省略表下界是0,n省略,表上界无限大。

*表示{,} +表示{1,} ?表示{0,1}

最大匹配和最小匹配

Python都是最大匹配,如果要最小匹配,在*,+,?,{m,n}后面加一个?。

match object的end可以得到匹配的最后一个字符的位置。
re.compile(“a“).match(‘aaaa’).end()     4  最大匹配
re.compile(“a?”).match(‘aaaa’).end()    0  最小匹配

使用原始字符串

字符串表示方法中用\表示字符\。大量使用影响可读性。

解决方法:在字符串前面加一个r表示raw格式。

a = r”\a” print a 结果是\a

a = r”\”a” print a 结果是\”a

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python爬虫与数据分析之模块:内置模块、开源模块、自定义模块
内置模块的介绍和使用
Python常用模块大全(总结)
python模块导入(import)问题彻底解决
Python常用模块资料
Python常见面试题总结——个人Python学习经验
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服