Python模块

模块是python非常重要并常用的,这里对基本用法和常用模块做下简要记录
一、模块定义
模块(module):是逻辑上组织python代码的.py结尾的Python文件,代码中可以包含变量、函数、类,总体是为了实现一个功能。
包(package):是一个组织python文件的一个目录(必须含有一个__init__.py的文件,用以初始化包内容,所有导入包里所有方法,需要在__init__.py中导入相关方法)
二、模块使用方法
import  module_name
import  module_name01,module_name02
from    module_name import *
from    module_name import fun01,fun02
from    module_name import fun01 as fun

import和from ... import ...的主要区别如下:
  import:相当于当前文件引用其他文件的内容,在调用导入模块时,需要调用导入方法,语法必须为modue.fun()带有导入模块名
  from ... import ...:相当于导入模块的所有代码直接粘贴到当前py文件,在调用时不需要包含模块名,而且可以单独导入模块中的部分方法、变量等,但存可能会导致导入的代码和当前代码存在变量、方法等冲突问题,慎用
包导入:import package_name
  导入包其实就是其执行package_name包下面的__init__.py文件
三、import本质(路径搜索和搜索路径)
import 模块的本质是将python文件解释一遍,具体流程如下:
import module_name——>module_name.py——>python路径查找module_name.py文件(默认当前路径先查找)——>解释module_name.py或者出错
#查看当前python文件搜索路径
import  sys
print(sys.path)

#导入其他路径的python模块

  1. import sys
  2. import os
  3. p01=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))+os.sep+"Day01"
  4. print(p01)
  5. sys.path.append(p01)
  6. print(sys.path)
  7. import HelloWorld
四、模块分类
1.标准库(python自带的)
时间模块:(time、datetime)
##time模块使用方法(格式化字符串形式、元组形式、时间戳形式)
import  time
##格式化字符串时间格式2017-07-30 11:10:57
print(time.strftime("%Y-%m-%d %X"))
2017-07-30 10:00:24
##时间戳时间格式(1970+time.time()即是当前时间)
print(time.time())
1501377801.9864273

##元组时间格式()
print(time.localtime())
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=30, tm_hour=9, tm_min=25, tm_sec=4, tm_wday=6, tm_yday=211, tm_isdst=0)

time.timezone:标准时间-当前时区值,北京显示为-28800秒
time.time():
time.sleep():

##时间戳转化为元组形式
time.gmtime():将秒转化为UTC的元组形式 ,返回的是标准时间即0时区的当前时间
time.localtime():将秒转为为UTC元组形式,显示当前时间,参数值是秒,默认当前时间
##元组转化为时间戳形式
time.mktime() :将元组形式数据转化为时间戳形式(秒),传入的变量值是元组

##元组转化为格式化的字符串时间形式
time.strftime():将元组形式的时间,转化为格式化的字符串形式
x=time.localtime()
print(time.strftime('%Y-%m-%d %X',x))
##字符串时间格式转为元组时间格式
time.strptime():将字符串时间格式转化为元组形式时间格式
x=time.strftime("%Y-%m-%d %X")
print(time.strptime(x,"%Y-%m-%d %X"))

时间格式:
 %Y  Year with century as a decimal number.
 %m  Month as a decimal number [01,12].
 %d  Day of the month as a decimal number [01,31].
 %H  Hour (24-hour clock) as a decimal number [00,23].
 %M  Minute as a decimal number [00,59].
 %S  Second as a decimal number [00,61].
 %z  Time zone offset from UTC.
 %a  Locale's abbreviated weekday name.
 %A  Locale's full weekday name.
 %b  Locale's abbreviated month name.
 %B  Locale's full month name.
 %c  Locale's appropriate date and time representation.
 %I  Hour (12-hour clock) as a decimal number [01,12].
 %p  Locale's equivalent of either AM or PM.

常用获取当前时间:
time.strftime("%Y-%m-%d %X")
time.localtime()
time.time()

##datetime模块用法

str(datetime.now()+timedelta(3))
'2017-08-04 16:49:51.377186'

str(datetime.now()+timedelta(hours=-3))
'2017-08-01 13:50:51.167165'

str(datetime.now()+timedelta(minutes=+3))
'2017-08-01 18:30:37.745793'

random模块:
##随机取(0-1)之间的数值
>>> random.random()
0.9151227988883402
##随机取[m-n]之间的整数
>>> random.randint(1,3)
3
##随机取[m-n)之间的整数
>>> random.randrange(5)
1
##随机取一个字符或列表数值
>>> random.choice('chinese')
's'
>>> random.choice([1,5,'abc'])
1
##从字符串中随机取出N个字符
>>> random.sample('hello',2)
['h', 'l']
##从区间(m,n)中取浮点数
>>> random.uniform(3,10)
7.797497264321265

##让有序列表变无序
>>> l=[1,2,3,4,5]
>>> random.shuffle(l)
>>> l
[2, 4, 1, 5, 3]

案例:生成随机验证码

  1. #!/usr/bin/env python
  2. # -*- UTF-8 -*-
  3. import random

  4. check_code=''

  5. for i in range(4):
  6.     num=random.randrange(0,4)
  7.     if num==i:
  8.         code=chr(random.randint(65,90))
  9.     else:
  10.         code=random.randint(1,9)
  11.     check_code+=str(code)

  12. print(check_code)
##大写字母ascii:65-90,小写字母:97-122

OS模块:
os.getcwd()                 ##获取当前目录
os.chdir('/home/oracle')        ##切换路径,前面加r使转移失效,使用\转移
os.chdir(r"c:\users")
os.chdir("c:\\users")
os.curdir                ##显示当前目录
'.'
os.pardir                ##显示父目录
'..'
os.makedirs('/home/tools/a/b')        ##递归创建目录
os.removedirs('/home/tools/a/b')    ##递归删除目录,如果目录为空则删除并递归到上层目录,如果还未空则继续删除
os.mkdir('/home/tools/a')          ##建立目录,不能递归创建
os.rmdir('/home/tools/a')        ##删除目录,不能递归删除
os.listdir('/')                ##列出目录内容
os.stat('./.bash_profile')        ##显示属性
os.rename('aa','bb')            ##将文件名aa更改为bb
os.linesep                ##显示平台使用行终止符号win \r\n linux \n
'\n'
os.sep                    ##输出操作系统特定的路径分隔符win \ linux /
'/'
os.name                    ##输出字符只是当前使用平台win:nt linux:posix
'posix'
os.pathsep                ##输出用于分隔文件路径的字符串windows: ; linux: :
':'
os.environ                ##输出环境变量
os.system('cmd')            ##执行系统命令,具体命令需要引号括起来,例如os.system('date')
os.path.abspath('abc')          ##获取文件abc的绝对路径
os.path.split('/home/tools/package.zip')##分隔文件名、路径,结果为('/home/tools', 'package.zip')
os.path.dirname('/home/tools')        ##获取目录名称,最后一个路径分隔符前的内容
'/home'
os.path.basename('/home/tools')        ##获取文件名称,最后一个路径分隔符后的内容
'tools'
os.path.exists('/home/tools/')      ##判断文件、路径是否存在,返回值为True、False
True
os.path.isabs('/home')            ##判断是否是绝对路径
os.path.isfile('/home/package.zip')    ##判断是否是文件
True
os.path.isdir('/home')            ##判断是否为路径
True
os.path.join('/home','a','b')        ##将多个路径组合返回
'/home/a/b'
os.path.getatime('/home')        ##获取文件、路径的访问时间、执行时间
1502700846.897154
os.path.getctime('/home')        ##获取文件、路径的属性修改时间
1497491543.3123677
os.path.getmtime('/home')        ##后去文件、路径的内容修改时间
sys模块:
sys.argv                ##接收输入变量参数值,列表形式,列表第一个值是文件本身
 python argv.py  111 222
['argv.py', '111', '222']
sys.exit(n)                ##正常退出程序
sys.version                ##输出python程序版本信息
sys.maxint                ##输出最大int值
sys.path                ##输出python系统环境变量
sys.platform                ##输出操作系统平台
sys.stdout.write("hello \n")        ##系统标准输出
hi=sys.stdin.readline()[:-1]        ##接收系统标准输入,不提示;而raw_input(""),提示标准输入
>>> hi=sys.stdin.readline()[:-1]
hello
>>> print(hi)
hello
>>> he=raw_input("INPUT:")
INPUT:hello
>>> print(he)
hello
shutil模块:


2.第三方模块(开源的)


3.自定义模块(自己定义开发的)



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27067062/viewspace-2142786/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27067062/viewspace-2142786/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值