python笔记06-----常用模块(time,os,sys,random)

模块

1. 模块的定义和导入

定义:

模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py对应的模块名:test)

包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件)

导入:

 import module_name
import module1_name,module2_name
from module_alex import *
from module_alex import m1,m2,m3
from module_alex import logger as logger_alex #设置模块别名

import 本质(路径搜索和搜索路径)

导入模块的本质就是把python文件解释一遍

(import test  test=‘test.py all code’)

(from test import name name=‘code’)

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

 import os,sys
x = os.path
print(x)
x1 = "/data"
sys.path.append(x1)
print(x1)
---------------输出结果------------------
<module 'ntpath' from 'C:\\Users\\Administrator\\PycharmProjects\\NBcmdb\\venv\\lib\\ntpath.py'>
/data

导入优化

form module_test import test

模块的分类

  1. 标准库(内置模块)
  2. 开源模块(第三方模块)
  3. 自定义模块(实际上就是写一个python文件)

自定义模块

文件名  login.py

 import getpass
_username = 'wsy'
_password = '' username = input("输入用户名:")
password = input("输入密码:")
if username == _username and password == _password:
print("welcome user %s login"% username)
else:
print("wrong username or password!")

导入的方法

import login

方法一:copy到环境变量 base/lib/site-packages/

方法二:添加新的环境变量

2. time模块和datetime模块(时间)

time模块

2.1 time方法sleep方法

 import time
start = time.time()
time.sleep(1)
#省略千行代码
end = time.time() print("执行代码用时:%s" %(end - start))

计算代码执行的时间

2.2 localtime方法

import time
a = time.localtime()
print(a)
--------------输出结果---------------
time.struct_time(tm_year=2018(年), tm_mon=1(月), tm_mday=24(日), tm_hour=11(小时), tm_min=14(分钟), tm_sec=18(秒), tm_wday=2(一周的第几天), tm_yday=24(一年的第几天), tm_isdst=0(时区))

可以通过a.tm_year 调用

print(a.tm_year,a.tm_mon,a.tm_mday) --输出结果: 2018 5 10

2.3 mktime方法

 打印1970到现在用了多少秒

 a = time.localtime()
print(time.mktime(a)) ----------------结果-----------------
1525919616.0

2.4 strftime方法

 打印当前时间
print(time.strftime("%Y-%m-%d %H:%M:%S"))
#%Y :年
#%m :月
#%d :日
#%H :时
#%M :分
#%S :秒
------------------------输出结果------------------------
2018-05-10 10:34:43

时间的转换

 import time

 # 将结构化时间转换成时间戳
print(time.mktime(time.localtime())) # 将结构化时间转换成字符串时间
print(time.strftime("%Y-%m-%d",time.localtime()))
# 将字符串时间转换成结构化时间
print(time.strptime('2018-05-10',"%Y-%m-%d"))
print(time.strptime("2018-01-24 11:31:16","%Y-%m-%d %H:%M:%S"))
-------------------------输出结果--------------------------------
1525920162.0
2018-05-10
time.struct_time(tm_year=2018, tm_mon=5, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=130, tm_isdst=-1)
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=24, tm_hour=11, tm_min=31, tm_sec=16, tm_wday=2, tm_yday=24, tm_isdst=-1)

datetime模块

 import datetime,time
print(datetime.datetime.now()) #获取当前时间
print(datetime.datetime.now() + datetime.timedelta(-5)) # 五天前
print(datetime.datetime.now()+ datetime.timedelta(+5)) # 五天后
print(datetime.datetime.now() + datetime.timedelta(hours=3)) # 3小时后
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) # 30分钟后 a = time.time()
print(a)
print(datetime.date.fromtimestamp(a)) # 时间戳转成年月日
---------------------------------输出结果-------------------------------
2018-05-10 10:57:38.666891
2018-05-05 10:57:38.666891
2018-05-15 10:57:38.666891
2018-05-10 13:57:38.666891
2018-05-10 11:27:38.666891
1525921058.666891
2018-05-10

3. random模块(随机数)

3.1 方法的使用

 import random
print(random.random()) # 0-1
print(random.randint(1,7)) # 1-7
print(random.randrange(3)) # 0 1 2
print(random.choice('123wsty')) # 随机取一个字符,可以传入字符串列表元祖
print(random.sample('heeeeaa',2)) # 随机取两个字符,列表形式
print(random.uniform(1,3)) # 指定区间浮点数 ---------------------------输出结果---------------------------
0.15290056806101748
1
2
w
['e', 'a']
1.5085069390150398

3.2 实现随机数字验证码

 import random
checkcode = '' for i in range(6):
current = random.randint(1,9)
checkcode += str(current)
print(checkcode)
-----------------------输出结果-------------------------
897988

3.3 实现随机数字+字母验证码

 import random
n = ''
for i in range(6):
a = random.randint(0, 9)
if a % 2 == 0:
tmp = chr(random.randint(65, 90))
else:
tmp = random.randint(0, 9)
n += str(tmp) print(n)
------------------输出结果--------------------
29SJV7

4. OS模块(系统操作)

 print(os.getcwd())         #pwd
print(os.chdir("C:\\windows")) #cd
print(os.chdir(r"C:\windows")) #cd
print(os.curdir)          #返回当前目录
print(os.pardir)          #上级目录 cd ..
print(os.makedirs(r"D:\a\b\c\d"))#递归创建目录 mkdir –p /a/b/c/d
print(os.removedirs(r"D:\a\b\c\d"))#删除空目录 rmdir /a/b/c/d -p
print(os.mkdir(r'D:\a'))      #创建目录
print(os.rmdir(r'D:\a'))      #删除空目录 一层 rmdir /a/
print(os.listdir(r'D:'))      #列出目录包含内容列表方式
print(os.remove())          #删除文件
print(os.rename())          #重命名
print(os.stat(r'D:'))        #获取目录信息
print(os.sep)             #路径分割付
print(os.linesep)          #行分隔符
print(os.environ)          #查看环境变量
print(os.pathsep)          #查看变量分隔符
print(os.name)            #系统名 unmae
print(os.system('dir'))      #执行系统命令
print(os.path.defpath)        #获取路径
print(os.path.split(r"c:\windows"))#分开返回路径放在元祖里
print(os.path.dirname(r"C:\a\b\c"))#取目录
print(os.path.basename(r"C:\a\b\c\a.txt"))#取文件
print(os.path.exists(r'c:\das'))#判断路径是否存在
print(os.path.isdir(r'c:\das'))#判断目录是否存在
print(os.path.file(r'c:\das'))#判断文件是否存在
 import os

 path = 'C:\\'

 for root, dirs, files in os.walk(path):      # 全部,目录,文件
print("Root=%s,dirs=%s,files=%s" %(root,dirs,files))

os.walk()

5. sys模块

 import sys

 print(sys.path)      # 打印环境变量
print(sys.argv)     # [显示本文件路径] 命令行参数 第一个元素是程序本身路径
#
print(len(sys.argv)) # 统计参数个数
print(sys.argv[0]) # 当前文件路径
sys.argv[2] # 传第二个参数 print(sys.version) # 获取python版本 print(sys.maxunicode) # 最大unicode值
print(sys.maxsize) # 最大size值
print(sys.platform) # 返回操作系统平台名称
sys.exit() # 提前退出程序
上一篇:Kubernetes(二)-- 搭建(未完待续)


下一篇:2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror) in codeforces(codeforces730)