python常用模块收录

简介:

time模块:

  在python中,通常有以下几种方式来表示时间:

    1、时间戳,如time.time

    2、格式化的时间字符串,如'17/01/2017 10:17:00'

    3、元组(struct_time),如gmtime、localtime等等

  time.time():把从1970年开始到现在的所有时间转换成秒数,即时间戳

  time.gmtime():将时间戳(秒数)转换成UTC时区的元组形式

  time.localtime():将时间戳转换成当地时区的元组形式

    这种元组形式的时间可以通过其内部的方法取得需要的时间元素。例:

    x = time.localtime()

    x.tm_year可以取得当前是哪一年

    x.tm_mon可以取得当前是哪一月

    x.tm_mday可以取得当前是哪一天

  time.sleep(s):睡眠s秒

  time.mktime(t):将元组(tuple)形式的时间转换成时间戳

  time.strftime(format [, tuple]):

    将元组形式的时间转换成格式化的时间字符串(用数字方式显示),若不指定tuple则转换当前的localtime

  time.strptime(string, format):将格式化的时间字符串转换成元组形式的时间

  time.asctime([tuple]):

    将元组形式的时间转换成格式化的时间字符串(用英文方式显示),若不指定tuple则转换当前的localtime

  time.ctime([seconds]):

    将时间戳转换成格式化的时间字符串(用英文方式显示),若不指定时间戳则转换当前的时间戳

datetime模块:

  datetime.datetime.now():取得当前的日期与时间

  datetime.datetime.now() + datetime.datetime.delta(3):取得三天后的当前时间

  datetime.datetime.now() + datetime.datetime.delta(-3):取得三天前的当前时间

  datetime.datetime.now() + datetime.datetime.delta(hours=3):取得三小时后的当前时间

  datetime.datetime.now() + datetime.datetime.delta(hours=-3):取得三小时前的当前时间

  datetime.datetime.now().replace(minute=10,hour=10):时间替换

random模块:随机数

  random.random():取得0-1之间的浮点随机数

  random.uniform(1,10):取得1-10之间的浮点随机数,1和10可以任意指定

  random.randint(1,3):取得1-3之间的任意随机数,包括1和3,这里的1和3可以任意指定

  random.randrange(1,3):取得1-3之间的任意随机数,不包括3,这里的1和3可以任意指定

  random.choice('equence):从序列sequence中随机取一个元素

  random.sample(sequence,count):每次从序列sequence中随机取count个元素

  random.shuffle(sequence):洗牌,将一个序列的顺序打乱

os模块:提供对操作系统进行调用的接口

  os.getcwd():获取当前工作目录

  os.chdir(path):切换目录

  os.curdir:返回当前目录

  os.pardir:返回当前目录的父目录

  os.makedirs(name, mode=511, exist_ok=False):递归创建目录

    例:os.makedirs(r'/a/b/c/d/e')

  os.removedirs(name):若目录为空则删除,并递归到上一级目录,若还是为空则再删除,依此类推

  os.mkdir(path, mode=511, *, dir_fd=None):创建单级目录,若父目录不存在则抛出异常

  os.rmdir(path, *, dir_fd=None):删除单级空目录,若目录不为空则抛出异常

  os.listdir(path=None):列出某路径下的所有文件,包括文件和目录

  os.remove():删除一个文件

  os.rename('oldname','newname'):重命名文件/目录

  os.stat('path/to/filename'):获取文件/目录信息

  os.sep:输出操作系统特定的路径分隔符,win下为’\\',linux下为'/'

  os.linesep:输出当前平台使用的行终止符,win下为'\r\n',linux下为'\n'

  os.pathsep:输出用于分割文件路径的字符串,存放多个路径的时候区分不同路径时用的分隔符

  os.name:输出字符串指示当前使用平台。win-->'nt',linux-->'posix'

  os.system('bash command'):运行shell命令,直接显示结果,返回值为命令执行的状态码

  os.popen('bash command'):运行shell命令,命令结果作为返回值返回并打印至屏幕

  os.startfile('/path/to/file'):以图形化方式打开一个程序,只适用于windows

  os.environ:获取系统环境变量

  os.urandom(n):返回指定n字节的加密强随机数据

  os.path.abspath(path):返回path规范化的绝对路径

  os.path.split(path):返回将path分割成以目录和文件名作为元素的2元素元组

  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,否则返回False

  os.path.isabs(path):判断path是不是一个绝对路径,是则返回True,否则返回False

  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模块:提供对python进行调用的接口

  sys.argv:命令行参数list,第一个元素是程序本身路径

  sys.exit(n):退出程序,正常退出时exit(0),n可以是数字也可以是字符串

  sys.version:获取python解释程序的版本信息

  sys.maxint:最大的int值

  sys.path:返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

  sys.platform:返回操作系统平台名称

  sys.stdout.write('please: ')

  va1 = sys.stdin.readline()[:-1]

  sys.modules:返回当前系统已加载的所有模块信息字典

fileinput:遍历文本文件所有的行

  fileinput.input(/path/to/file):返回一个可迭代的文件流类的实例对象

  fileinput.filename():返回当前文件名

  fileinput.lineno():返回当前行号

  fileinput.filelineno():返回文件行数

  fileinput.isfirstline():判断当前行是不是文件的第一行

  fileinput.isstdin():检查最后一行是否来自于标准输入流

  fileinput.nextfile():关闭当前文件并将指针移动到下一个文件

  fileinput.close():关闭所有已打开的文件

shutil:专门用来copy文件,可以压缩包

  shutil.copyfileobj(fsrc,fdst [, length]):

    将ffsrc的内容拷贝至fdst中,可以通过length设置拷贝多少内容

  shutil.copyfile(src,dst):拷贝src至dst

  shutil.copymode(src,dst):仅拷贝权限。新文件的内容、组、用户均不变(谁创建的文件就是谁的)

  shutil.copystat(src,dst):拷贝状态的信息,包括mode bits,atime,mtime,flags

  shutil.copy(src,dst):拷贝文件和权限

  shutil.copy2(src,dst):拷贝文件和状态信息

  shutil.copytree(src,dst,symlink=False,ignore=None):递归的去拷贝文件

  shutil.rmtree(path [, ignore_errors [, onerror]]):递归的去删除文件

  shutil.move(src,dst):递归的去移动文件

  shutil.make_archive(base_name,format,...):创建压缩包并返回文件路径,例如:zip、tar

    base_name:

      压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径。

        如:www => 保存至当前路径

        如:/Users/sean/www => 保存至/Users/sean/www

    format:压缩包种类。'zip'、'tar'、'bztar'、'gztar'

    root_dir:要压缩的目录路径(默认当前目录)

    owner:用户。默认当前用户

    group:组。默认当前组

    logger:用于记录日志。通常是logging.Logger对象

  shutil对压缩包的处理是调用ZipFile和TarFile两个模块来进行的。

zipfile模块:

  压缩:

    z = zipfile.ZipFile('test.zip','w')

    z.write('a.log')

    z.write('data.data')

    z.close()

  解压:

    z = zipfile.ZipFile('test.zip','r')

    z.extractall()

    z.close()

tarfile模块:

  压缩:

    tar = tarfile.open('your.tar','w')

    tar.add('/Users/sean/www.zip',arcname='www.zip')

    tar.add('/Users/sean/cmdb.zip',arcname='cmdb.zip')

    tar.close()

  解压:

    tar = tarfile.open('your.tar','r')

    tar.extractall()

    tar.close()

json & pickle:用于序列化的两个模块

  json,用于字符串和python数据类型间进行转换

    把python内存中的数据类型转换成字符串存储在硬盘的文件上

    解决了不同语言、不同平台之间的数据交换问题。

  pickle,用于python特有的类型和python的数据类型间进行转换

    把python内存中的任意数据类型转换成字符串存储在硬盘的文件上

  两者均提供了四个功能:dumps、dump、loads、load

    dumps和loads直接在内存中操作,不对文件进行操作

    dump和load会对文件进行操作:写入和读取

shelve:一个简单的字典类型的(key,value),将内存数据通过文件持久化存储的模块

  可以持久化存储任何pickle可支持的python数据类型

  写入:

1
2
3
4
5
6
7
8
9
10
11
=  shelve. open ( 'shelve_test' ) #打开一个文件
class  Test( object ):
     def  __init__( self ,n):
         self .n  =  n
=  Test( 123 )
t2  =  Test( 1234567 )
name  =  [ 'tom' , 'jerry' , 'test' ]
d[ 'test' =  name   #持久化列表
d[ 't1' =  t   #持久化类
d[ 't2' =  t2
d.close()

  读取:

1
2
3
d.get( 'test' )
d.get( 't1' )
d.get( 't2' )

xml:用来在python中处理xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import  xml.etree.ElementTree as ET
tree  =  ET.parse( 'xmltest.xml' ) #要处理的文件名
root  =  tree.getroot()
print (root.tag) #打印根标签名
#遍历xml文档
for  child  in  root:
     print (child.tag,child.attrib)
     for  in  child:
         print (i.tag,i.text)
#只遍历year节点
for  node  in  root. iter ( 'year' ):
     print (node.tag,node.text)
#修改
for  node  in  root. iter ( 'year' ):
     new_year  =  int (node.text)  +  1
     node.text  =  str (new_year)
     node. set ( "updated_by" , "sean" )
   tree.write( 'xmltest.xml' )
#删除node
for  country  in  root.findall( 'country' ):
     rank  =  int (country.find( 'rank' ).text)
   if  rank >  50 :
       root.remove(country)
   tree.write( 'output.xml' )

configparser:生成和修改常见配置文档

  生成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import  configparser
config  =  configparser.ConfigParser()
config[ 'DEFAULT' =  { 'ServerAliveInterval' : '45' ,
'Compression' : 'yes' ,
'CompressionLevel' : '9' }
config[ 'bitbucket.org' =  {}
config[ 'bitbucket.org' ][ 'User' =  'hg'
config[ 'topsecret.server.com' =  {}
topsecret  =  config[ 'topsecret.server.com' ]
topsecret[ 'Host Port' =  '50022'
topsecret[ 'ForwardX11' =  'no'
config[ 'DEFAULT' ][ 'ForwardX11' =  'yes'
with  open ( 'example.ini' , 'w' ) as configfile:
config.write(configfile)

  读取:

1
2
3
4
conf  =  configparser.ConfigParser()
conf.read( 'example.ini' )
print (conf.defaults())
print (conf[ 'bitbucket.org' ][ 'user' ])

hashlib:用于加密相关的操作

  3.x系列代替了2.x系列中的md5模块和sha模块。主要提供SHA1、SHA224、SHA256、SHA284、SHA512和MD5算法

1
2
3
4
5
6
import  hashlib
=  hashlib.md5()
m.update(b 'Hello' )
m.update(b "It's me" )
print (m.digest()) #二进制格式hash
print (m.hexdigest()) #十六进制格式hash

  注意:前面执行了两次update,然后才打印的结果,此时的结果是两次update的对象加在一起生成的hash

webbrowser:

  webbrowser.open(url):打开一个网页










本文转自 忘情OK  51CTO博客,原文链接:http://blog.51cto.com/itchentao/1897288,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
存储 开发者 Python
Python中的collections模块与UserDict:用户自定义字典详解
【4月更文挑战第2天】在Python中,`collections.UserDict`是用于创建自定义字典行为的基类,它提供了一个可扩展的接口。通过继承`UserDict`,可以轻松添加或修改字典功能,如在`__init__`和`__setitem__`等方法中插入自定义逻辑。使用`UserDict`有助于保持代码可读性和可维护性,而不是直接继承内置的`dict`。例如,可以创建一个`LoggingDict`类,在设置键值对时记录操作。这样,开发者可以根据具体需求定制字典行为,同时保持对字典内部管理的抽象。
|
19天前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
1天前
|
测试技术 Python
Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
|
1天前
|
Serverless 开发者 Python
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
25 1
|
3天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
25 0
|
4天前
|
Python
python学习14-模块与包
python学习14-模块与包
|
6天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
11天前
|
索引 Python
「Python系列」Python operator模块、math模块
Python的`operator`模块提供了一系列内置的操作符函数,这些函数对应于Python语言中的内建操作符。使用`operator`模块可以使代码更加清晰和易读,同时也能提高性能,因为它通常比使用Python内建操作符更快。
27 0
|
15天前
|
数据采集 网络协议 API
python中其他网络相关的模块和库简介
【4月更文挑战第4天】Python网络编程有多个流行模块和库,如requests提供简洁的HTTP客户端API,支持多种HTTP方法和自动处理复杂功能;Scrapy是高效的网络爬虫框架,适用于数据挖掘和自动化测试;aiohttp基于asyncio的异步HTTP库,用于构建高性能Web应用;Twisted是事件驱动的网络引擎,支持多种协议和异步编程;Flask和Django分别是轻量级和全栈Web框架,方便构建不同规模的Web应用。这些工具使网络编程更简单和高效。
|
19天前
|
数据采集 数据挖掘 Python
Python中collections模块的Counter计数器:深入解析与应用
在Python的`collections`模块中,`Counter`是一个强大且实用的工具,它主要用于计数可哈希对象。无论是统计单词出现的频率,还是分析数据集中元素的分布情况,`Counter`都能提供快速且直观的结果。本文将深入解析`Counter`计数器的原理、用法以及它在实际应用中的价值。