python中常用模块
OS模块
python编程时,经常和文件、目录打交道,这是就离不了os模块。os模块包含普遍的操作系统功能,与具体的平台无关os.name()——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'os.getcwd()——得到当前工作的目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdir( "dirname" ) #改变当前脚本工作目录;相当于shell下cd os.curdir #返回当前目录: ('.') os.pardir #获取当前目录的父目录字符串名:('..') os.makedirs( 'dirname1/dirname2' ) #可生成多层递归目录 os.removedirs( 'dirname1' ) #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir( 'dirname' ) #生成单级目录;相当于shell中mkdir dirname os.rmdir( 'dirname' ) #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir( 'dirname' ) #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() #删除一个文件 os.rename( "oldname" , "newname" ) #重命名文件/目录 os.stat( 'path/filename' ) #获取文件/目录信息 os.sep #输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" os.linesep #输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n" os.pathsep #输出用于分割文件路径的字符串 os.name #输出字符串指示当前使用平台。win->'nt'; Linux->'posix' os.system( "bash command" ) #运行shell命令,直接显示 os.environ #获取系统环境变量 os.path.abspath(path) #返回path规范化的绝对路径 os.path.split(path) #将path分割成目录和文件名二元组返回 os.path.dirname(path) #返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) #返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素 os.path.exists(path) #如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) #如果path是绝对路径,返回True os.path.isfile(path) #如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) #如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) #返回path所指向的文件或者目录的最后存取时间 os.path.getmtime(path) #返回path所指向的文件或者目录的最后修改时间 |
sys模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | sys.argv #命令行参数List,第一个元素是程序本身路径 sys.exit(n) #退出程序,正常退出时exit(0) sys.version #获取Python解释程序的版本信息 sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform #返回操作系统平台名称 sys.stdout.write( 'please:' )sys.exit(n) 退出程序,正常退出时exit( 0 ) sys.hexversion 获取Python解释程序的版本值, 16 进制格式如: 0x020403F0 sys.version 获取Python解释程序的版本信息 sys.platform 返回操作系统平台名称 sys.stdout 标准输出 sys.stdout.write( 'aaa' ) 标准输出内容 sys.stdout.writelines() 无换行输出 sys.stdin 标准输入 sys.stdin.read() 输入一行 sys.stderr 错误输出 sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息 sys.exec_prefix 返回平台独立的python文件安装的位置 sys.byteorder 本地字节规则的指示器,big - endian平台的值是 'big' ,little - endian平台的值是 'little' sys.copyright 记录python版权相关的东西 sys.api_version 解释器的C的API版本 sys.version_info 'final' 表示最终,也有 'candidate' 表示候选,表示版本级别,是否有后继的发行 sys.getdefaultencoding() 返回当前你所用的默认的字符编码格式 sys.getfilesystemencoding() 返回将 Unicode 文件名转换成系统文件名的编码的名字 sys.builtin_module_names Python解释器导入的内建模块列表 sys.executable Python解释程序路径 sys.getwindowsversion() 获取Windows的版本 sys.stdin.readline() 从标准输入读一行,sys.stdout.write( "a" ) 屏幕输出a sys.setdefaultencoding(name) 用来设置当前默认的字符编码(详细使用参考文档) sys.displayhook(value) 如果value非空,这个函数会把他输出到sys.stdout(详细使用参考文档) |
正则re模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r "^a" , "\nabc\neee" ,flags = re.MULTILINE) '$' 匹配字符结尾,或e.search( "foo$" , "bfoo\nsdfsf" ,flags = re.MULTILINE).group()也可以 '*' 匹配 * 号前的字符 0 次或多次,re.findall( "ab*" , "cabb3abcbbac" ) 结果为[ 'abb' , 'ab' , 'a' ] '+' 匹配前一个字符 1 次或多次,re.findall( "ab+" , "ab+cd+abb+bba" ) 结果[ 'ab' , 'abb' ] '?' 匹配前一个字符 1 次或 0 次 '{m}' 匹配前一个字符m次 '{n,m}' 匹配前一个字符n到m次,re.findall( "ab{1,3}" , "abb abc abbcbbb" ) 结果 'abb' , 'ab' , 'abb' ] '|' 匹配|左或|右的字符,re.search( "abc|ABC" , "ABCBabcCD" ).group() 结果 'ABC' '(...)' 分组匹配,re.search( "(abc){2}a(123|456)c" , "abcabca456c" ).group() 结果 abcabca456c '\A' 只从字符开头匹配,re.search( "\Aabc" , "alexabc" ) 是匹配不到的 '\Z' 匹配字符结尾,同$ '\d' 匹配数字 0 - 9 '\D' 匹配非数字 '\w' 匹配[A - Za - z0 - 9 ] '\W' 匹配非[A - Za - z0 - 9 ] 's' 匹配空白字符、\t、\n、\r , re.search( "\s+" , "ab\tc1\n3" ).group() 结果 '\t' |
datetime,date,time模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | datetime.date.today() 本地日期对象,(用 str 函数可得到它的字面表示( 2014 - 03 - 24 )) datetime.date.isoformat(obj) 当前[年 - 月 - 日]字符串表示( 2014 - 03 - 24 ) datetime.date.fromtimestamp() 返回一个日期对象,参数是时间戳,返回 [年 - 月 - 日] datetime.date.weekday(obj) 返回一个日期对象的星期数,周一是 0 datetime.date.isoweekday(obj) 返回一个日期对象的星期数,周一是 1 datetime.date.isocalendar(obj) 把日期对象返回一个带有年月日的元组 datetime对象: datetime.datetime.today() 返回一个包含本地时间(含微秒数)的datetime对象 2014 - 03 - 24 23 : 31 : 50.419000 datetime.datetime.now([tz]) 返回指定时区的datetime对象 2014 - 03 - 24 23 : 31 : 50.419000 datetime.datetime.utcnow() 返回一个零时区的datetime对象 datetime.fromtimestamp(timestamp[,tz]) 按时间戳返回一个datetime对象,可指定时区,可用于strftime转换为日期表示 datetime.utcfromtimestamp(timestamp) 按时间戳返回一个UTC - datetime对象 datetime.datetime.strptime( '2014-03-16 12:21:21' , "%Y-%m-%d %H:%M:%S" ) 将字符串转为datetime对象 datetime.datetime.strftime(datetime.datetime.now(), '%Y%m%d %H%M%S' ) 将datetime对象转换为 str 表示形式 datetime.date.today().timetuple() 转换为时间戳datetime元组对象,可用于转换时间戳 datetime.datetime.now().timetuple() time.mktime(timetupleobj) 将datetime元组对象转为时间戳 time.time() 当前时间戳 time.localtime time.gmtime |
hashlib,md5模块
1 2 | hashlib.md5( 'md5_str' ).hexdigest() 对指定字符串md5加密 md5.md5( 'md5_str' ).hexdigest() 对指定字符串md5加密 |
random模块
1 2 3 4 5 6 7 | random.random() 产生 0 - 1 的随机浮点数 random.uniform(a, b) 产生指定范围内的随机浮点数 random.randint(a, b) 产生指定范围内的随机整数 random.randrange([start], stop[, step]) 从一个指定步长的集合中产生随机数 random.choice(sequence) 从序列中产生一个随机数 random.shuffle(x[, random]) 将一个列表中的元素打乱 random.sample(sequence, k) 从序列中随机获取指定长度的片断 |
MySQLdb模块
1 2 3 4 5 6 7 | MySQLdb.get_client_info() 获取API版本 MySQLdb.Binary( 'string' ) 转为二进制数据形式 MySQLdb.escape_string( 'str' ) 针对mysql的字符转义函数 MySQLdb.DateFromTicks( 1395842548 ) 把时间戳转为datetime.date对象实例 MySQLdb.TimestampFromTicks( 1395842548 ) 把时间戳转为datetime.datetime对象实例 MySQLdb.string_literal( 'str' ) 字符转义 MySQLdb.cursor()游标对象上的方法:《python核心编程》P624 |
string模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | str .capitalize() 把字符串的第一个字符大写 str .center(width) 返回一个原字符串居中,并使用空格填充到width长度的新字符串 str .ljust(width) 返回一个原字符串左对齐,用空格填充到指定长度的新字符串 str .rjust(width) 返回一个原字符串右对齐,用空格填充到指定长度的新字符串 str .zfill(width) 返回字符串右对齐,前面用 0 填充到指定长度的新字符串 str .count( str ,[beg, len ]) 返回子字符串在原字符串出现次数,beg, len 是范围 str .decode(encodeing[,replace]) 解码string,出错引发ValueError异常 str .encode(encodeing[,replace]) 解码string str .endswith(substr[,beg,end]) 字符串是否以substr结束,beg,end是范围 str .startswith(substr[,beg,end]) 字符串是否以substr开头,beg,end是范围 str .expandtabs(tabsize = 8 ) 把字符串的tab转为空格,默认为 8 个 str .find( str ,[stat,end]) 查找子字符串在字符串第一次出现的位置,否则返回 - 1 str .index( str ,[beg,end]) 查找子字符串在指定字符中的位置,不存在报异常 str .isalnum() 检查字符串是否以字母和数字组成,是返回true否则 False str .isalpha() 检查字符串是否以纯字母组成,是返回true,否则false str .isdecimal() 检查字符串是否以纯十进制数字组成,返回布尔值 str .isdigit() 检查字符串是否以纯数字组成,返回布尔值 str .islower() 检查字符串是否全是小写,返回布尔值 str .isupper() 检查字符串是否全是大写,返回布尔值 str .isnumeric() 检查字符串是否只包含数字字符,返回布尔值 str .isspace() 如果 str 中只包含空格,则返回true,否则FALSE str .title() 返回标题化的字符串(所有单词首字母大写,其余小写) str .istitle() 如果字符串是标题化的(参见title())则返回true,否则false str .join(seq) 以 str 作为连接符,将一个序列中的元素连接成字符串 str .split( str = '',num) 以 str 作为分隔符,将一个字符串分隔成一个序列,num是被分隔的字符串 str .splitlines(num) 以行分隔,返回各行内容作为元素的列表 str .lower() 将大写转为小写 str .upper() 转换字符串的小写为大写 str .swapcase() 翻换字符串的大小写 str .lstrip() 去掉字符左边的空格和回车换行符 str .rstrip() 去掉字符右边的空格和回车换行符 str .strip() 去掉字符两边的空格和回车换行符 str .partition(substr) 从substr出现的第一个位置起,将 str 分割成一个 3 元组。 str .replace(str1,str2,num) 查找str1替换成str2,num是替换次数 str .rfind( str [,beg,end]) 从右边开始查询子字符串 str .rindex( str ,[beg,end]) 从右边开始查找子字符串位置 str .rpartition( str ) 类似partition函数,不过从右边开始查找 str .translate( str , del = '') 按 str 给出的表转换string的字符, del 是要过虑的字符 |
shutil模块
1 2 3 4 5 6 7 8 9 | shutil.copyfile( src, dst) #从源src复制到dst中去。 如果当前的dst已存在的话就会被覆盖掉 shutil.move( src, dst) #移动文件或重命名 shutil.copymode( src, dst) #只是会复制其权限其他的东西是不会被复制的 shutil.copystat( src, dst) #复制权限、最后访问时间、最后修改时间 shutil.copy( src, dst) #复制一个文件到一个文件或一个目录 shutil.copy2( src, dst) #在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西 shutil.copy2( src, dst) #如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作 shutil.copytree( olddir, newdir, True / Flase) #把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接 shutil.rmtree( src ) #递归删除一个目录以及目录内的所有内容 |
分类:
python语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)