【Python】python常用模块
一、模块、包
什么是模块?
模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称。
什么是包?
包,package本质就是一个文件夹,和文件夹不一样的是它有一个__init__.py文件,包是从逻辑上来组织模块的,也就是说它是用来存放模块的,如果你想导入其他目录下的模块,那么这个目录必须是一个包才可以导入。
导入模块
- import module #导入模块
- from module import * #导入该模块中的所有方法,慎用
- from module import fun as xx_fun #导入指定的方法,然后起别名
- from module import fun1,fun2,fun3 #导入模块下的多个方法
- import module,实际上就是把该模块的代码赋值给模块名,也就是module.py里面所有的代码,赋值给了module这个变量,如果是from module import fun,就是把module打开,把module里面的fun方法拿过来使用
导入模块的本质,就是把python文件拿过来执行一次。
使用包中的模块需要在__init__.py文件中from *** import xxx
二、OS模块
window 路径分隔符\, linux或MAC 路径分隔符 /,'\\'其中一个为转义符,r'绝对路径/文件名'里面的路径分隔符不用加转义符,r'纯文本'
- import os
- print(os.getcwd())#获取当前的路径
- os.mkdir('wy')#当前目录下创建文件夹
- os.mkdir('e:\\wangyang')#绝对路径下创建文件夹
- os.makedirs('zz')#当前目录创建文件夹或按照绝对路径创建
- #创建两级目录
- os.mkdir('stu\\laowang')#父目录不存在会报错
- os.makedirs('stu\\laowang')#父目录不存在的时候会帮你创建父目录
- os.listdir(r'e:')#获取某个路径下的文件
- os.listdir('.')#当前目录下的文件,返回值是list,将所有的文件放在一个list
- os.rmdir('stus')#只能删除空文件夹
- print(os.path.join('stu','a.txt'))#根据当前系统,拼接路径,他会自动识别路径分隔符stu\a.txt
- print(os.sep)#当前系统的路径分隔符,window--\,linux\MAC--/
- print(os.path.dirname('e:\\nhy\\stu\\a.txt'))#获取父目录的路径e:\nhy\stu,根据你所传参数为准,以参数作为整个路径
- print(os.path.getsize('stu\\test0\\a.txt'))#获取文件的大小
- print(os.path.exists('user/local'))#判断文件或者文件夹,是否存在,如果不存在返回false,如果存在返回true
- print(os.path.isdir('stu'))#判断是否是文件夹,如果文件夹不存在返回false
- print(os.path.isfile('stu\\test0\\a.txt'))#判断是否是文件,如果文件不存在返回false
- print(os.path.split(r'.\stu\test0\a.txt'))#分割文件名与路径,结果为:('.\\stu\\test0', 'a.txt')
- os.walk(r'.\logs')#返回这三个信息:目录、目录包含的文件夹列表、目录包含的文件列表
- for cur,dir,f in os.walk(r'.\stu'):
- print(cur,dir,f)#cur为当前目录,dir为目录包含的所有文件夹,f为目录包含的所有文件
练习:
- #当前目录下,在末尾是偶数的文件夹中,创建一个a.txt文件,里面随便写点东西
- dirs = os.listdir('.')
- for i in dirs:
- if int(i[-1])%2==0:
- with open(r'.\stu\%s\a.txt'%i,'a+',encoding='utf-8') as file:
- file.write('wangyang奋斗奋斗')
三、random模块
- import random
- print(random.random())#随机浮点数,默认取0-1,不能指定范围,eg.0.5963688623020358
- print(random.randint(1,20))#随机整数
- print(random.randrange(1,20))#随机产生一个range
- print(random.choice('x23serw4'))#随机取一个元素
- print(random.sample('hello',2))#从序列中随机取几个元素
- print(random.uniform(1,9))#随机取浮点数,可以指定范围
- x = [1,2,3,4,6,7]
- random.shuffle(x)#洗牌,打乱顺序,会改变原list的值
- print(x)
四、date、datetime模块
- 时间戳 从unix元年开始到现在过得秒数,格式好时间2018-07-01
- print(time.time())#获取当前时间戳,
- print(int(time.time()))#获取当前时间戳,整型
- print(time.strftime('%Y-%m-%d %H:%M:%S'))#2018-07-01 17:03:07 Y四位年
- print(time.strftime('%y-%m-%d %H:%M:%S'))#18-07-01 17:03:07 y两位年
- print(int(time.time())-10*24*60*60)#追溯到10天前,返回值为时间戳
print(time.mktime(time_tuple))#时间元组转为时间戳- 时间元组
- print(time.gmtime())#把时间戳转为元组,如果不传时间戳,那么取得是标准时区的时间
- print(time.localtime())#把时间戳转为元组,如果不传时间戳,那么取得是当前时区的时间
- print(time.localtime(int(time.time())-3*24*60*60))#把时间戳转为元组,传时间戳,获取三天前的时间元组
- print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(time.time())-3*24*60*60)))#将时间元组格式化,format为必需参数,时间元组为默认参数,默认为None
执行结果为:
- 时间戳:
- 1530871998.5078156
- 1530871998
- 2018-07-06 18:13:18
- 18-07-06 18:13:18
- 1530007998
- 时间元组:
- time.struct_time(tm_year=2018, tm_mon=7, tm_mday=6, tm_hour=10, tm_min=13, tm_sec=18, tm_wday=4, tm_yday=187, tm_isdst=0)
- time.struct_time(tm_year=2018, tm_mon=7, tm_mday=6, tm_hour=18, tm_min=13, tm_sec=18, tm_wday=4, tm_yday=187, tm_isdst=0)
- time.struct_time(tm_year=2018, tm_mon=7, tm_mday=3, tm_hour=18, tm_min=13, tm_sec=18, tm_wday=1, tm_yday=184, tm_isdst=0)
- 2018-07-03 18:13:18
- 时间戳转格式化好的时间
1.首先要把时间戳转成时间元组
2.再把时间元组转成格式好的时间- def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
- if timestamp:
- time_tuple = time.localtime(timestamp) # 时间戳转成时间元组
- return time.strftime(format,time_tuple) #时间元组,通过format格式转为格式化好的时间
- return time.strftime(format)#如果没有传递时间元组,则默认格式化当前时间
- print(timestampToStr(2234123120,'%Y%m%d'))
- print(timestampToStr(format='%Y%m%d'))
结果为:20401018 20180706
- 格式化好的时间,转为时间戳 1.首先要把格式化好的时间,转成时间元组 2.再把时间元组转成时间戳
- def strToTimestamp(format_time=None,format='%Y%m%d%H%M%S'):
- if format_time:
- time_tuple = time.strptime(format_time, format)#将格式化好的时间转换为时间元组,格式化好的时间格式必须和format格式一致
- print(time_tuple)
- return int(time.mktime(time_tuple))#将时间元组转为时间戳
- return int(time.time())#获取当前时间戳整型
- print(strToTimestamp('20401018054520','%Y%m%d%H%M%S'))
- 结果为:
- time.struct_time(tm_year=2040, tm_mon=10, tm_mday=18, tm_hour=5, tm_min=45, tm_sec=20, tm_wday=3, tm_yday=292, tm_isdst=-1)
- 2234123120
五、string模块
- import string#先引入包才能使用
- print(string.ascii_letters)#打印出所有的字母大小写abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
- print(string.ascii_lowercase)#打印出所有的字母小写abcdefghijklmnopqrstuvwxyz
- print(string.ascii_uppercase)#打印出所有的字母大写ABCDEFGHIJKLMNOPQRSTUVWXYZ
- print(string.digits)#打印出所有的数字
- print(string.punctuation)#打印出所有的特殊字符
- print(string.printable)#打印出全部
【Python】python常用模块的更多相关文章
- python的常用模块之collections模块
python的常用模块之collections模块 python全栈开发,模块,collections 认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文 ...
- python之常用模块
python 常用模块 之 (subprocess模块.logging模块.re模块) python 常用模块 之 (序列化模块.XML模块.configparse模块.hashlib模块) pyth ...
- python之常用模块二(hashlib logging configparser)
摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...
- Python学习——python的常用模块
模块:用一堆代码实现了某个功能的代码集合,模块是不带 .py 扩展的另外一个 Python 文件的文件名. 一.time & datetime模块 import time import dat ...
- python之常用模块4
pyinotify模块 pip3 install pyinotify pyinotify提供的事件: 事件标志 事件含义 IN_ACCESS 被监控项目或者被监控目录中的文件被访问,比如一个文件被读取 ...
- python 之常用模块
一 认识模块 二 常用模块 (1)re模块 (2)collections模块 一 认识模块 (1)什么是模块 (2)模块的导入和使用 (1)模块是:一个模块就是一个包含 ...
- Python之常用模块--collections模块
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
- Python自动化开发之python的常用模块
python常用模块 模块的种类:模块分为三种,分别是自定义模块:内置标准模块(即标准库):开源模块(第三方). 以下主要研究标准模块即标准库:标准库直接导入即可,不需要安装. 时间模块:time , ...
- python基础----常用模块
一 time模块(时间模块)★★★★ 时间表现形式 在Python中,通常有这三种方式来表示时 ...
- python(五)常用模块学习
版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. https://blog.csdn.net/fgf00/article/details/52357 ...
随机推荐
- 在vue中使用插槽 slot
插槽(slot)这个概念非常重要 插槽的使用场景1:在子组件里面显示父组件的dom <div id='root'> <child content = '<p>Dell&l ...
- chapter1-printf.py
#!/usr/bin/env python # _*_ coding:utf-8 _*_ from ctypes import * libc = CDLL("libc.so.6") ...
- javascript中的作用域与作用域链
前几天,在写一段js代码时,出现了一些问题,调了很长时间也没有调通,其原因是,我在处理变量的作用域时错误地沿用了C++的作用域机制.因此我回炉了一次. 如果你使用过C++或java等一系列的面向对象的 ...
- parameter server
http://zeromq.org ZeroMQ \zero-em-queue\, \ØMQ\: Ø Connect your code in any language, on any platfo ...
- java 基础词汇 必须 第九天
Collection 集合 List 列表集合 Set 不重复集合 Linked 链表 Vector 线程安全集合 Hash 哈希值 tree 树型结构 Map 键值对集合 add 增加 remove ...
- [转]C++ Template
引言 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计.C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream. 函数模板 ...
- 爬虫学习(十三)——xpath基础学习
lxml的作用 lxml是HTML.xml的解析器,主要的功能是如何解析和提取HTML和xml数据 lxml和正则一样,也是使用C来实现的,是一款高性能的python HTML/xml解析器,我们可以 ...
- MySQL中事物的详解
1. 事物的定义及特性 事务是一组操作数据库的SQL语句组成的工作单元,该工作单元中所有操作要么同时成功,要么同时失败.事物有如下四个特性,ACID简称“酸性”. 1)原子性:工作单元中所有的操作要么 ...
- css样式 body的font-size 为什么用625%
浏览器的默认高度?一般为16px. 为什么用62.5%作为body的默认样式?16px62.5%=10px.* 那么为什么一般多是 16px *625% = 100px; <响应式Web设计实 ...
- 【jQuery】手机验证码倒计时效果
<ul class="ulist"> <li class="group"> <label class="label&qu ...