python笔记-----模块(time,os,sys,random,shutil)

模块

1. 模块的定义和导入

定义:

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

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

导入:

1 import module_name
2 import module1_name,module2_name
3 from module_alex import *
4 from module_alex import m1,m2,m3
5 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

1 import os,sys
2 x = os.path
3 print(x)
4 x1 = "/data"
5 sys.path.append(x1)
6 print(x1)
7 ---------------输出结果------------------
8 <module ‘ntpath‘ from ‘C:\\Users\\Administrator\\PycharmProjects\\NBcmdb\\venv\\lib\\ntpath.py‘>9 /data

导入优化

form module_test import test

模块的分类

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

自定义模块

文件名  login.py

 1 import getpass
 2 _username = ‘wsy‘
 3 _password = ‘123‘
 4
 5 username = input("输入用户名:")
 6 password = input("输入密码:")
 7 if username == _username and password == _password:
 8     print("welcome user %s login"% username)
 9 else:
10     print("wrong username or password!")

导入的方法

import login

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

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

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

time模块

2.1 time方法sleep方法

1 import time
2 start = time.time()
3 time.sleep(1)
4 #省略千行代码
5 end = time.time()
6
7 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方法

1 打印1970到现在用了多少秒
2
3 a = time.localtime()
4 print(time.mktime(a))
5
6
7
8 ----------------结果-----------------
9 1525919616.0

2.4 strftime方法

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

时间的转换

 1 import time
 2
 3 # 将结构化时间转换成时间戳
 4 print(time.mktime(time.localtime()))
 5
 6 # 将结构化时间转换成字符串时间
 7 print(time.strftime("%Y-%m-%d",time.localtime()))
 8 # 将字符串时间转换成结构化时间
 9 print(time.strptime(‘2018-05-10‘,"%Y-%m-%d"))
10 print(time.strptime("2018-01-24 11:31:16","%Y-%m-%d %H:%M:%S"))
11 -------------------------输出结果--------------------------------
12 1525920162.0
13 2018-05-10
14 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)
15 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模块

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

3. random模块(随机数)

3.1 方法的使用

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

3.2 实现随机数字验证码

1 import random
2 checkcode = ‘‘
3
4 for i in range(6):
5     current = random.randint(1,9)
6     checkcode += str(current)
7 print(checkcode)
8 -----------------------输出结果-------------------------
9 897988

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

 1 import random
 2 n = ‘‘
 3 for i in range(6):
 4     a = random.randint(0, 9)
 5     if a % 2 == 0:
 6         tmp = chr(random.randint(65, 90))
 7     else:
 8         tmp = random.randint(0, 9)
 9     n += str(tmp)
10
11 print(n)
12 ------------------输出结果--------------------
13 29SJV7

4. OS模块(系统操作)

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

1 import os
2
3 path = ‘C:\\‘
4
5 for root, dirs, files in os.walk(path):      # 全部,目录,文件
6     print("Root=%s,dirs=%s,files=%s" %(root,dirs,files))

os.walk()

5. sys模块

 1 import sys
 2
 3 print(sys.path)      # 打印环境变量
 4 print(sys.argv)      # [显示本文件路径] 命令行参数 第一个元素是程序本身路径
 5 #
 6 print(len(sys.argv))    # 统计参数个数
 7 print(sys.argv[0])      # 当前文件路径
 8 sys.argv[2]             # 传第二个参数
 9
10 print(sys.version)      # 获取python版本
11
12 print(sys.maxunicode)   # 最大unicode值
13 print(sys.maxsize)      # 最大size值
14 print(sys.platform)     # 返回操作系统平台名称
15 sys.exit()              # 提前退出程序

6. shutil模块

复制删除

 1 import shutil
 2 shutil.copy(‘filename‘, ‘test2‘)      # copy方法
 3
 4 f1 = open(‘filename‘,encoding=‘utf-8‘)   # 复制文件copyfileobj方法
 5 f2 = open(‘f‘,‘w‘,encoding=‘utf-8‘)
 6 shutil.copyfileobj(f1, f2)
 7
 8
 9 shutil.copyfile(‘filename‘,‘test3‘)      # 复制文件copyfile方法
10 shutil.move("test3", "test4")         # 文件的移动和改名
11 shutil.copymode(‘test‘,‘test1‘)           # 权限copy
12 shutil.copystat("test","test1")           # 复制文件的状态
13 shutil.copy2(‘test‘,‘test1‘)              # 复制文件和状态
14 shutil.copytree(‘dir1‘,‘dir2‘)        # 递归复制 必须是目录
15 shutil.rmtree(‘dir1‘)              # 删除目录 多个用逗号分隔

打压缩包

shutil.make_archive(‘base_name’,’format’,’root_dir’)

base_name:压缩包的文件名,也可以使压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径

format:压缩包种类,”zip”,”tar”,”bztar”,”gztar”

root_dir:要压缩的文件夹路径(默认当前目录)

owner:用户 默认当前

group:组,默认当前

logger:用于记录日志,通常是logging.Logger对象

1 import shutil
2 import os
3 dir = os.path.exists(r‘/data/‘) #判断目录是否存在
4 if dir == False:            #如果不存在
5     os.makedirs(‘/data/1/2/‘)   #创建目录
6 shutil.make_archive("data", "gztar", "/data/") #打成tar.gz包

解包和其他方法

unpack_archive()

功能:解包操作
格式:shutil.unpack_archive(‘归档文件路径‘,‘解包目标文件夹‘)
返回值:None
注意:文件夹不存在会新建文件夹

get_archive_formats()

功能:获取当前系统已注册的归档文件格式(后缀)
格式:shutil.get_archive_formats()
返回值:列表   [(后缀,解释),(后缀,解释),(后缀,解释)...]

get_unpack_formats()

功能:获取当前系统已经注册的解包文件格式(后缀)
格式:shutil.get_unpack_formats()
返回值:列表   [(后缀,解释),(后缀,解释),(后缀,解释)...]

原文地址:https://www.cnblogs.com/wsy1030/p/9018519.html

时间: 2024-10-10 13:14:44

python笔记-----模块(time,os,sys,random,shutil)的相关文章

Python中模块之os &amp; sys的功能介绍

os & sys的功能介绍 1. os模块 1. os的变量 path 模块路径 方法:os.path 返回值:module 例如:print(os.path) >>> <module 'ntpath' from 'D:\\python3.5.2\\lib\\ntpath.py'> #返回posixpath和netpath两个模块中任意一个模块 name 模块名 方法:os.name 返回值:str 例如:print(os.name) >>> nt

Python常用模块——系统调用os模块

Python常用模块--系统调用os模块 OS模块 os模块提供了很多允许你的程序与操作系统直接交互的功能. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r"c:\python") 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir(

python 关于操作文件的相关模块(os,sys,shutil,subprocess,configparser)

一:os模块 os模块提供了许多允许你程序与操作系统直接交互的功能 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录

python学习道路(day6note)(time &amp;datetime,random,shutil,shelve,xml处理,configparser,hashlib,logging模块,re正则表达式)

1.tiim模块,因为方法较多我就写在code里面了,后面有注释 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 print("time".center(60,"-")) 5 print(time.asctime()) #返回字符串格式 外国的时间 6 #Fri Nov 18 11:25:08 2016 7 t = time.localtime() #本地时间 8 #print(t) #这是一个对象所以需要 9 p

python中re time os sys模块

re模块 正则表达式 这里写反斜杠也是转义的意思,python在re模块中使用都需要加反斜杠 \d 是匹配一个数字 \+ 大于等于1 \w 匹配数字字母下划线和中横杠 \* 匹配0个或多个 \t 指标符 . 除了回车意外的的所有 * 大于等于0 + 大于等于1 ? 0或1 {m},{m,n} 出现m次,出现m到n次,包括mn re匹字符串 re.match() re.match(pattern, string, flags)默认有3个参数,是最后一个我们不是很关注他,就默认.通过你前面写的pat

常用模块:time,os,sys,rondom

时间模块: 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块. #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取当前时间戳 表示时间的三种方式 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.

6.python常用模块之os

os模块用于python和操作系统进行交互. 常用函数如下: os.getcwd() 获取python脚本当前的工作路径. os.chdir() 修改当前脚本的工作路径. os.makedirs('dirname1/dirname2')    可生成多层递归目录 os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除. os.mkdir() 创建单个目录. os.rmdir() 删除单个目录,如果目录不为空,无法删除. os.list

python常用模块之os模块的用法

我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数.在写一些系统脚本 或者自动化运维脚本的时候经常会用到这个os库. 详解见链接:http://www.cnblogs.com/cherishry/p/5725977.html 原文地址:https://www.cnblogs.com/daqingzi/p/9565577.html

【Python笔记】【os】-- 获取设置当前工作目录

获取当前工作目录 os.getcwd() #用以获取当前的工作目录 改变当前工作目录 os.chdir(path) #用于改变当前工作目录到指定的路径 参数: Path  --要切换到的路径. 返回值:如果允许访问返回True,否则返回False. 例子: #-*-coding:utf-8-*- import os,sys path = 'D:\\' #查看当前工作目录 print("当前的工作目录为:%s" %os.getcwd()) #修改当前工作目录 os.chdir(path)