Python模块学习

一、模块的定义

模块:本质来说就是.py结尾的python文件,从逻辑上组织python代码,为了去实现某个功能

二、导入方法

import module_name,module2_name//相当于对象.属性(对象.方法)
from module_alex import *//导入模块中所有内容,直接调用其方法可能会冲突
from module_alex import as logger_alex
三、import本质(路径搜索和搜索路径)

module_alex = allcode进行解释并赋值给module_alex
from module_alex import name//找到module_alex代码中某一部分直接使用
from . import test1相对导入
注意:

导入模块的本质就是把Python文件解释一遍
导入包的本质是在执行包下面的init文件

import原理:

当import一个模块时,首先会去sys.path列表中去找路径,看所需模块是否存在,即下列过程

import module_name--->module_name.py--->module_name.py的路径--->sys.path

如果在当前的路径中找不到该文件,这时候我们就可以在系统路径列表中添加绝对路径的方式
os.path.dirname(os.path.abspath(__file__))

四、导入优化(起别名的方式)

from module_test import test

五、模块分类及具体模块讲解

(1)模块的分类

a.标准库

b.开源模块

c.自定义模块

(2)模块讲解

1.time模块

在Python中时间有三种形式,分别是格式化字符串、struct_time(元组)、时间戳

接下来结合具体代码进行讲解

基本用法

#和utc时间的差值,东八区
time.timezone 

#获取时间戳
print(time.time())

#睡几秒
time.sleep(2)
时间戳->元组struct_time->格式化字符串三者之间的转化关系

#时间戳->元组struct_time ,
print(time.gmtime())#utc时区
print(time.localtime())#utc+8时区时间

x = time.localtime()
print(x.tm_year)#取出时间

#元组struct_time->时间戳
print(time.mktime(x))

#元组struct_time->格式化字符串strftime(format,tuple)
print(time.strftime("%Y-%m-%d %H:%M:%S",x))

#格式化字符串strptime->元组struct_time
print(time.strptime('2015-06-03 18:30:20',"%Y-%m-%d %H:%M:%S"))

#localtime %a %b %d %H:%M:%S:%Y格式 英文版
#asctime(tuple)、ctime(时间戳)区别
print(time.asctime())
print(time.ctime())
深入理解格式化字符串与struct_time的转化关系

strftime("格式",struct_time)-->“格式化字符串”
strptime("格式化的字符串","格式")-->struct_time
深入理解
time.strftime("%Y:%d%M",x)-->相当于去struct_time的元组中取对应值
%Y:x.time_year,%m:x.tm_mon有种占位符的感觉
time.strptime('2016-08:20','%Y-%m:%S')
x.tm_year = 2016

2.random模块

import random
#生成0到1的浮点数
print(random.random())
#uniform在一个区间取浮点数
print(random.uniform(1,3))
#随机[1,3]
print(random.randint(1,3))
#随机[1,3)
print(random.randrange(1,3))
print(random.choice('hello'))
print(random.choice([1,2,3]))
#sample随机取几位数
print(random.sample('abc',2))
l=[1,2,3,5,6]
random.shuffle(l)
print(l)
验证码简单示例

checkCode = ''
for i in range(4):
    current = random.randrange(0,4)
    if(current==i){
        tmp = chr(random.randint(65,90))
    }else{
        tmp = random.randint(0,9)
    }
checkCode+=str(tmp)

3.os模块

os模块类似于linux中的一些系统操作(文件、目录)

import os
#获取当前操作目录,相当于pwd
print(os.getcwd())
#切换当前工作目录,在路径前面加r
os.chdir(r"C:\Users\Pchy\PycharmProjects\s14\day5")
print(os.getcwd())
#返回当前目录.
os.curdir
#获取当前目录的父目录..
os.pardir
#递归创建目录,不存在也会创建出来
os.makedirs('dirname1/dirname2')
#递归删除空目录
os.removedirs('dirname1')
#创建目录,单级空目录
os.mkdir('dirname')
#删除单级空目录
os.rmdir('dirname')
#列出目录中包含的内容
os.listdir('.')
#删除一个文件
os.remove('dirname')
#重命名文件/目录
os.rename("oldname","newname")
#获取文件目录信息
os.stat('path/filename')
#输出操作系统特定的路径分隔符
print(os.sep)
#换行分隔符
print(os.linesep)
#用于分割文件路径的字符串;
print(os.pathsep)
#运行shell命令
os.system('ipconfig /all')
#获取系统环境变量
os.environ
#重点
#获取文件的绝对路径
os.path.abspath()
#把文件分割为2部分,一部分为路径,一部分为文件名元组形式
#不用管路径是否真实
os.path.split(r'C:\a\b\a.txt')
#返回path目录C:\a\b
os.path.dirname(r'C:\a\b\a.txt')
#返回文件名a.txt
os.path.basename(r'C:\a\b\a.txt')
#判断路径是否存在
os.path.exists(r'C:')
#判断是否是绝对路径
os.path.isabs(r'C:\')
os.path.isabs(r'/a/b/c')
#判断是否是一个文件
os.path.isfile()
#判断是否是目录
os.path.isdir()
#将多个路径组合返回
os.path.join(r'C:\',r'\a.txt')
#获取文件或目录最后存储时间
os.path.getatime(path)
#获取文件或目录最后修改时间
os.path.getmtime(path)

4.sys模块

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.version        获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称
sys.stdout.write('please:')
val = sys.stdin.readline()[:-1]










  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值