python 常用的系统函数有哪些

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

help(obj)在线帮助,obj可是任何类型

callable(obj)查看一个obj是不是可以像函数一样调用

repr(obj)得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝

eval(str)表示合法的python表达式,返回这个表达式

dir(obj)查看obj的namespace中可见的name

hasattr(obj,name)查看一个obj的namespace中是否有name

getattr(obj,name)得到一个obj的namespace中的一个name

setattr(obj,name,value)为一个obj的namespace中的一个name指向vale这个object

delattr(obj,name)从obj的namespace中删除一个name

vars(obj)返回一个object的namespace。用dictionary表示

locals()返回一个局部namespace,用dictionary表示

globals()返回一个全局namespace,用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)转换成一个longinterger

float(x)转换成一个浮点数

complex(x)转换成复数

max(...)求最大值

min(...)求最小值

用于执行程序的内置函数

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

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

系统相关的信息模块importsys

sys.argv是一个list,包含所有的命令行参数.

sys.stdoutsys.stdinsys.stderr分别表示标准输入输出,错误输出的文件对象.

sys.stdin.readline()从标准输入读一行sys.stdout.write("a")屏幕输出a

sys.exit(exit_code)退出程序

sys.modules是一个dictionary,表示系统中所有可用的module

sys.platform得到运行的操作系统环境

sys.path是一个list,指明所有查找module,package的路径.

操作系统相关的调用和操作importos

os.environ一个dictionary包含环境变量的映射关系os.environ["HOME"]可以得到环境变量HOME的值

os.chdir(dir)改变当前目录os.chdir('d:\\outlook')注意windows下用到转义

os.getcwd()得到当前目录

os.getegid()得到有效组idos.getgid()得到组id

os.getuid()得到用户idos.geteuid()得到有效用户id

os.setegidos.setegid()os.seteuid()os.setuid()

os.getgruops()得到用户组名称列表

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

importos,sys

cmd=sys.stdin.readline()

whilecmd:

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/huaying/111.sql')是否是符号连接windows下不可用

os.path.ismout(os.getcwd())是否是文件系统安装点windows下不可用

os.path.samefile(os.getcwd(),'/home/huaying')看看两个文件名是不是指的是同一个文件

os.path.walk('/home/huaying',test_fun,"a.c")

遍历/home/huaying下所有子目录包括本目录,对于每个目录都会调用函数test_fun.

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

deftest_fun(filename,dirname,names)://filename即是walk中的a.cdirname是访问的目录名称

是一个list,包含dirname目录下的所有内容

printos.path.join(dirname,filename)

os.path.walk('/home/huaying',test_fun,"a.c")

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()

regularexpression正则表达式importre

简单的regexp

p=re.compile("abc")ifp.match("abc"):print"match"

上例中首先生成一个pattern(模式),如果和某个字符串匹配,就返回一个matchobject

除某些特殊字符metacharacter元字符,大多数字符都和自身匹配。

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

字符集合(用[]表示)

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

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

p=re.compile("["+a+"]")

foriina:

ifp.match(i):

print"[%s]ismatch"%i

else:

print"[%s]isnotmatch"%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表示和十六进制ascii0x20匹配

有了\,可以在[]中表示任何字符。注:单独的一个"."如果没有出现[]中,表示出了换行\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}后面加一个?.

matchobject的end可以得到匹配的最后一个字符的位置。

re.compile("a*").match('aaaa').end()4最大匹配

re.compile("a*?").match('aaaa').end()0最小匹配

使用原始字符串

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

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

a=r"\a"printa结果是\a

a=r"\"a"printa结果是\"a

使用re模块

先用re.compile得到一个RegexObject表示一个regexp

后用pattern的match,search的方法,得到MatchObject

再用matchobject得到匹配的位置,匹配的字符串等信息

RegxObject常用函数:

>>>re.compile("a").match("abab")如果abab的开头和re.compile("a")匹配,得到MatchObject

>>>printre.compile("a").match("bbab")

None注:从str的开头开始匹配

>>>re.compile("a").search("abab")在abab中搜索第一个和re_obj匹配的部分

>>>printre.compile("a").search("bbab")

<_sre.sre_matchobjectat0x8184e18>和match()不同,不必从开头匹配

re_obj.findall(str)返回str中搜索所有和re_obj匹配的部分.

返回一个tuple,其中元素是匹配的字符串.

MatchObject的常用函数

m.start()返回起始位置,m.end()返回结束位置(不包含该位置的字符).

m.span()返回一个tuple表示(m.start(),m.end())

m.pos(),m.endpos(),m.re(),m.string()

m.re().search(m.string(),m.pos(),m.endpos())会得到m本身

m.finditer()可以返回一个iterator,用来遍历所有找到的MatchObject.

forminre.compile("[ab]").finditer("tatbxaxb"):

printm.span()

高级regexp

|表示联合多个regexp.AB两个regexp,A|B表示和A匹配或者跟B匹配.

^表示只匹配一行的开始行首,^只有在开头才有此特殊意义。

$表示只匹配一行的结尾

\A表示只匹配第一行字符串的开头^匹配每一行的行首

\Z表示只匹配行一行字符串的结尾$匹配第一行的行尾

\b只匹配词的边界例:\binfo\b只会匹配"info"不会匹配information

\B表示匹配非单词边界

示例如下:

>>>printre.compile(r"\binfo\b").match("info")#使用raw格式\b表示单词边界

>>>printre.compile("\binfo\b").match("info")#没有使用raw\b表示退格符号

>>>printre.compile("\binfo\b").match("\binfo\b")

分组(Group)示例:re.compile("(a(b)c)d").match("abcd").groups()('abc','b')

#!/usr/local/bin/python

importre

x="""

name:Charles

Address:BUPT

name:Ann

Address:BUPT

#p=re.compile(r"^name:(.*)\n^Address:(.*)\n",re.M)

p=re.compile(r"^name:(?P.*)\n^Address:(?P.*)\n",re.M)

forminp.finditer(x):

printm.span()

print"hereisyourfriendslist"

print"%s,%s"%m.groups()

CompileFlag

用re.compile得到RegxObject时,可以有一些flag用来调整RegxObject的详细特征.

DOTALL,S让.匹配任意字符,包括换行符\n

IGNORECASE,I忽略大小写

LOCALES,L让\w\W\b\B和当前的locale一致

MULTILINE,M多行模式,只影响^和$(参见上例)

VERBOSE,Xverbose模式

python实现excel常用的16个函数

Python 如何 写函数 类似excel replace的功能

deff(string):

l=len(string)

ifl<=1:

print("名字长度至少为2")

elifl==2:

returnstring[0]+"*"

elifl==3:

returnstring.replace(string[1],"*")

else:

returnstring.replace(string[1:-1],"*"*(l-2))

print(f("李云龙"))#'李*龙'

print(f("赵云"))#'赵*'

print(f("宫本武藏"))#'宫**藏'

您好,我的数据是在pandas的dataframe对象里面的,将整列的数据放不进这个函数呢。。

本回答由提问者推荐

excel电子表格常用函数有多?excel电子表格常用函数有多少

计算天数

DAY 计算参数中指定日期或引用单元格中的日期天数。 计算天数

DCOUNT 返回数据库或列表的列中满足指定条件并且包含数字的单元格数目。 条件统计

FREQUENCY 以一列垂直数组返回某个区域中数据的频率分布。 概率计算

IF 根据对指定条件的逻辑判断的真假结果,返回相对应条件触发的计算结果。

python实现excel常用的16个函数

excel表格的函数-excel电子表格常用函数有多?excel电子表格常用函数有多少

计算天数

DAY 计算参数中指定日期或引用单元格中的日期天数。 计算天数

DCOUNT 返回数据库或列表的列中满足指定条件并且包含数字的单元格数目。 条件统计

FREQUENCY 以一列垂直数组返回某个区域中数据的频率分布。 概率计算

IF 根据对指定条件的逻辑判断的真假结果,返回相对应条件触发的计算结果。

有哪些方法可以在excel中直接使用python脚本

python又一个库叫xlrd,专门用来解析excle

这是个简单介绍,看看就好在excel中准备调用的python代码:

def merge_sort_unique(lists):

s = set()

for l in lists:

s.update(l)

return sorted(s)

任意在本地建立一个目录,并保存这个代码并命名为methods.py。我们一步步看看如何从excel的工作表中如何调用这个脚本。打开excel,填写一些数据以便提供python脚本处理,并保持这个表格于刚才的python脚本在同一目录下。你的工作表应该如下:

接下来,打开vba并提交给excelpython。

打开vba按 alt + f11 然后进入工具界面的 references···如果你已经正确安装了excelpython你可以从对话框中选择。

现在,备调用python脚本,创建一个新的模块(insert | module)并敲以下vba代码:

function msu(lists as range)

set methods = pymodule("methods", addpath:=thisworkbook.path)

set result = pycall(methods, "merge_sort_unique", pytuple(lists.value2))

msu = worksheetfunction.transpose(pyvar(result))

exitfunction

endfunction

python实现excel常用的16个函数

有哪些方法可以在excel中直接使用python脚本

python又一个库叫xlrd,专门用来解析excle

这是个简单介绍,看看就好在excel中准备调用的python代码:

def merge_sort_unique(lists):

s = set()

for l in lists:

s.update(l)

return sorted(s)

任意在本地建立一个目录,并保存这个代码并命名为methods.py。我们一步步看看如何从excel的工作表中如何调用这个脚本。打开excel,填写一些数据以便提供python脚本处理,并保持这个表格于刚才的python脚本在同一目录下。你的工作表应该如下:

接下来,打开vba并提交给excelpython。

打开vba按 alt + f11 然后进入工具界面的 references···如果你已经正确安装了excelpython你可以从对话框中选择。

现在,备调用python脚本,创建一个新的模块(insert | module)并敲以下vba代码:

function msu(lists as range)

set methods = pymodule("methods", addpath:=thisworkbook.path)

set result = pycall(methods, "merge_sort_unique", pytuple(lists.value2))

msu = worksheetfunction.transpose(pyvar(result))

exitfunction

endfunction