python3常用模块

参考:http://blog.51cto.com/jiayimeng/2088111

在导入模块时只能使用模块名,而不能使用带.py后缀的模块文件名

import语句:
            导入指定的整个模块,包括生成一个以模块名命名的名称空间
            import module1[,module2[,...moduleN]]
            建议一个import语句只导入一个模块
            import module as module_alias
from-import语句:
            常用于只导入指定模块的部分属性至当前名称空间
            from module import name1[,name2[,...nameN]]
          import和from-import是赋值语句
            import和from是可执行语句,类似于def,因此,它们可以嵌套在if测试中,出现于def中等等
            Python执行到这些语句时才会对其进行解析,这意味着,所有来自模块的属性仅在import语句执行后才能使用
模块就是名称空间
            模块的名称空间可以通过属性__dict__或dir(M)获取
                模块属性可通过点号(.)运算符获取,格式为M.attr
            模块是一个独立的作用域(本地变量就是全局变量)

一、time模块:

asctime:返回时间格式Sun Mar 18 10:51:28 2018
In [1]: import time
In [2]: time.asctime()
Out[2]: 'Sun Mar 18 10:51:28 2018'
In [3]: time.asctime(time.localtime())
Out[3]: 'Sun Mar 18 10:51:45 2018'
ctime:将自纪元以来的时间以秒为单位转换为本地时间的字符串,相当于time.asctime(time.localtime())
In [4]: time.ctime()
Out[4]: 'Sun Mar 18 10:55:26 2018'
gmtime:当前UTC时间
In [7]: time.gmtime()

Out[7]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=2, tm_min=58, tm_sec=1, tm_wday=6, tm_yday=77, tm_isdst=0)
localtime:返回本地时间
In [9]: time.localtime()
Out[9]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=11, tm_min=3, tm_sec=56, tm_wday=6, tm_yday=77, tm_isdst=0)
strptime:将传入的时间转换为str格式的时间
In [11]: time.strptime('2018-3-18', '%Y-%m-%d')
Out[11]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=77, tm_isdst=-1)
strftime:将struct格式时间转换为指定格式的时间
In [13]: time.strftime('%Y-%m-%d %H:%M:%S')
Out[13]: '2018-03-18'
In [14]: time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
Out[14]: '2018-03-18 03:09:47'
mktime:将struct时间转换为时间戳
In [15]: time.mktime(time.strptime('2018-3-18', '%Y-%m-%d'))
Out[15]: 1521302400.0
sleep:睡眠时间
In [16]: time.sleep(5)

获取当前时间的时间戳

time.time()

二、datetime模块(与time模块相互协作,以后应该会只有一个时间模块):

datetime.date:表示日期的类。常用的属性有year, month, day
datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond
datetime.datetime:表示日期时间
datetime.timedelta:表示时间间隔,即两个时间点之间的长度
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])

>>> import datetime                         
>>> import time
#当前时间
>>> print(datetime.datetime.now())
2018-03-18 12:10:27.199643
#格式化时间戳
>>> print(datetime.date.fromtimestamp(time.time()))
2018-03-18
#当前时间➕3天
>>> print(datetime.datetime.now() + datetime.timedelta(3))
2018-03-21 12:10:52.869598
#当前时间➖3天
>>> print(datetime.datetime.now() + datetime.timedelta(-3))
2018-03-15 12:11:04.721491
#当前时间➕3小时
>>> print(datetime.datetime.now() + datetime.timedelta(hours=3))
2018-03-18 15:11:18.628036
#当前时间➖4小时
>>> print(datetime.datetime.now() + datetime.timedelta(hours=-4))
2018-03-18 08:11:42.096182
#当前时间➕120分钟
>>> print(datetime.datetime.now() + datetime.timedelta(minutes=120))
2018-03-18 14:11:53.305800

三、random模块:

In [1]: import random
In [2]: random.random()
Out[2]: 0.9381887159573181
#随机返回 [1,10] 之间的整数
In [3]: random.randint(1,10)
Out[3]: 8
#从1到10中,2为步长随机返回一个数
In [4]: random.randrange(1,10,2)
Out[4]: 5
#随机返回序列中的元素
In [5]: random.choice([1,2,3,4])
Out[5]: 3
#打乱序列中的元素顺序
In [10]: l1 = [1,2,3,4]
In [11]: random.shuffle(l1)
In [12]: l1
Out[12]: [1, 2, 4, 3]
#随机返回序列中的2个元素
In [13]: random.sample(l1,2)
Out[13]: [2, 4]

四、OS模块:(sys模块与os模块组成了Python系统相关工具集的核心部分。)

1、管理工具

扫描二维码关注公众号,回复: 2423521 查看本文章

In [3]: import os
getpid:给出调用函数的进程的ID
In [4]: os.getpid()
Out[4]: 15388
getcwd:返回当前工作目录
In [5]: os.getcwd()
Out[5]: '/home/ops-jym'
chdir:改变程序运行目录
In [6]: os.chdir(r'/home')
In [7]: os.getcwd()
Out[7]: '/home'
pathsep:输出用于分割文件路径的字符串
In [8]: os.pathsep
Out[8]: ':'
sep:输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
In [9]: os.sep
Out[9]: '/'
linesep:输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
In [10]: os.linesep
Out[10]: '\n'
pardir:表示“当前目录的父目录”字符串名
In [11]: os.pardir
Out[11]: '..'
curdir:返回表示“当前目录”的字符串名
In [12]: os.curdir
Out[12]: '.'

2、os.path 文件路径

isdir:检查给出的文件是否是目录
In [13]: os.path.isdir(r'/home/ops-jym'),os.path.isdir(r'/etc/issue')
Out[13]: (True, False)
isfile:检查给出的文件是否是文件
In [14]: os.path.isfile(r'/home/ops-jym'),os.path.isfile(r'/etc/issue'
    ...: )
Out[14]: (False, True)
exists:检查文件是否存在
In [16]: os.path.exists(r'/etc/issue'),os.path.exists(r'/etc/123')
Out[16]: (True, False)
getsize:返回给出文件的大小
In [17]: os.path.getsize(r'/etc/issue')
Out[17]: 23
split:将path分割成目录和文件名二元组返回
In [18]: os.path.split(r'/home/ops-jym')
Out[18]: ('/home', 'ops-jym')
join:将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
In [19]: os.path.join(r'/home','ops-zhh')
Out[19]: '/home/ops-zhh'
splitext:剥离文件扩展名(最后一个 . 后面的内容)
In [20]: os.path.splitext(r'/home/ops-jym/shell_script/lamp.sh')
Out[20]: ('/home/ops-jym/shell_script/lamp', '.sh')
normpath:对于路径中混用了win和linux的分隔符的,使用normpath来处理
In [21]: os.path.normpath(r'C:\123\123')
Out[21]: 'C:\\123\\123'
In [22]: os.path.normpath(r'/home//ops-jym')
Out[22]: '/home/ops-jym'
abspath:返回path规范化的绝对路径
In [23]: os.path.abspath(" ")
Out[23]: '/home'
In [24]: os.path.abspath('ops-jym')
Out[24]: '/home/ops-jym'

五、sys模块:

In [41]: import sys
#获取平台版本信息
In [42]: sys.platform,sys.maxsize,sys.version
Out[42]: 
('linux',
 9223372036854775807,
 '3.6.4 (default, Dec 26 2017, 13:57:54) \n[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]')

#模块搜索路径
In [43]: sys.path
Out[43]: 
['',
 '/usr/bin',
 '/usr/local/python3/lib/python36.zip',
 '/usr/local/python3/lib/python3.6',
 '/usr/local/python3/lib/python3.6/lib-dynload',
 '/usr/local/python3/lib/python3.6/site-packages',
 '/usr/local/python3/lib/python3.6/site-packages/IPython/extensions',
 '/root/.ipython']

#利用列表操作修改模块搜索路径(append,extend,insert,pop,remove,del)
In [44]: type(sys.path)
Out[44]: list
In [45]: sys.path.append(r"/home")
In [46]: sys.path
Out[46]: 
['',
 '/usr/bin',
 '/usr/local/python3/lib/python36.zip',
 '/usr/local/python3/lib/python3.6',
 '/usr/local/python3/lib/python3.6/lib-dynload',
 '/usr/local/python3/lib/python3.6/site-packages',
 '/usr/local/python3/lib/python3.6/site-packages/IPython/extensions',
 '/root/.ipython',
 '/home']
In [47]: sys.path.remove('/home')

#查看已加载模块
In [50]: list(sys.modules.keys())

#查看对象的引用次数
In [50]: sys.getrefcount("sys")
Out[50]: 626

In [51]: sys.getrefcount("os")
Out[51]: 687

#显示为由字符串组成的列表的命令行参数
In [52]: sys.argv
Out[52]: ['/bin/ipython3']

#标准流
sys.stdin、sys.stdout、sys.stderr

#程序退出
sys.exit

猜你喜欢

转载自blog.csdn.net/wangpeng322/article/details/81080380