python 常用模块(一): random , time , sys , os模块部分知识.
1.常用模块:(1)collectiaons模块 (2)与时间相关 time模块 (3)random模块 (4)os模块 (5)sys模块 (6) 序列化模块: json , pickle
2.random模块
3.time模块
4.sys模块
5.os模块 部分知识点
一. random 模块:取随机数的模块
(1)取随机小数: 数学计算
print(random.random()) # 取0-1之间的小数
print(random.uniform(1,2)) # 取1-2之间的小数
# 结果: 0.9234934964280419 1.5132205002520736
(2)取随机整数: 彩票,抽奖
import random
print(random.randint(1,2)) # [1,2] #顾头顾尾
print(random.randrange(1,2)) # [1,2) #顾头不顾尾
print(random.randrange(1,200,2)) # [1,2) #1-200之间的奇数 #结果:
1
1
141
(3)从列表上中抽取值: 抽奖
l = ['a','b',(1,2),123]
print(random.choice(l)) # 取一个
print(random.sample(l,2)) # 取多个 #结果:
a
['b', 'a']
(4)打乱一个列表的顺序: 在原列表的基础上直接进行修改,节省空间: 洗牌
l = ['a','b',(1,2),123]
random.shuffle(l)
print(l) # 打乱顺序 #结果:
[123, 'b', 'a', (1, 2)]
二.time模块:time模块主要是用来和时间打交道的.
import time
时间格式: 格式化时间,时间戳时间,结构化时间
'2018-8-20' '2018.8.20' 字符串数据类型 格式化时间 - 给人看的
结构化时间 1534732642.617272 浮点型数据类型,以s为单位 时间戳时间 - 给机器计算用的 伦敦时间开始计算:1970 1 1 0:0:0
时间戳时间;
print(time.time()) #结果:1534764717.8744347
格式化时间;
print(time.strftime('%Y-%m-%d %H:%M:%S')) # str format time
print(time.strftime('%y-%m-%d %H:%M:%S')) # str format time
print(time.strftime('%c')) #结果:
2018-08-20 19:32:43
18-08-20 19:32:43
Mon Aug 20 19:32:43 2018
结构化时间:
struct_time = time.localtime() # 北京时间
print(struct_time)
print(struct_time.tm_mon) #月份 #结果:
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=19, tm_min=34, tm_sec=11, tm_wday=0, tm_yday=232, tm_isdst=0) 8
时间戳时间转换成字符串时间:
struct_time = time.localtime(1500000000)
print(time.gmtime(1500000000))
ret = time.strftime('%y-%m-%d %H:%M:%S',struct_time)
print(ret) #结果:
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
17-07-14 10:40:00
字符串时间转换成时间戳时间:
struct_time = time.strptime('2018-8-8','%Y-%m-%d')
print(struct_time)
res = time.mktime(struct_time)
print(res) #结果:
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=220, tm_isdst=-1)
1533657600.0
三.sys模块:和python解释器打交道的模块
(1)sys.argv:argv的第一个参数是python这个命令后面的值.
注:当你在命令行执行python文件,而不是在pycharm中执行这个文件的时候,
你的命令>>> python python文件的路径 参数1 参数2 参数3 ...
sys.argv = ['python文件的路径','参数1','参数2','参数3'...]
好处:这些需要输入的参数不需要在程序中以input的形式输入了
文件名: 文件路径不能有中文 所有的文件名都应该符合变量命名规范
整个文件路径不能有空格 不支持中文
(2)sys.path:
注:模块搜索路径 是一个列表,这个列表中存的都是文件夹的绝对路径
一个模块能被导入,是因为这个模块所在的文件夹在sys.path的列表中
内置模块和第三方模块安装之后,不需要操作sys.path,直接用就行了
如果一个模块导入不进来,那把这个模块的文件夹添加到sys.path中就行了
模块本来就在解释器里么?
不是的,模块本来应该是存在硬盘上.但是在使用时,通过 import ..... 模块 这时,模块才到内存中.
一个模块能否被顺利的引入,全看sys.path下面有没有这个模块的所在.(自定义模块的时候,还需要再关注sys.path)
(3)sys.modules: 是导入到内存中的所有模块的名字:这个模块的内存地址.
print(sys.modules) # 是我们导入到内存中的所有模块的名字 : 这个模块的内存地址 #结果:
{'builtins': <module 'builtins' (built-in)>, 'sys': <module 'sys' (built-in)>, '_frozen_importlib': <module '_frozen_importlib' (frozen)>, '_imp': <module '_imp' (built-in)>, '_warnings': <module '_warnings' (built-in)>, '_thread': <module '_thread' (built-in)>, '_weakref': <module '_weakref' (built-in)>, '_frozen_importlib_external': <module '_frozen_importlib_external' (frozen)>, '_io': <module 'io' (built-in)>, 'marshal': <module 'marshal' (built-in)>, 'nt': <module 'nt' (built-in)>, 'winreg': <module 'winreg' (built-in)>, 'zipimport': <module 'zipimport' (built-in)>, 'encodings': <module 'encodings' from 'C:\\Python36\\lib\\encodings\\__init__.py'>, 'codecs': <module 'codecs' from 'C:\\Python36\\lib\\codecs.py'>, '_codecs': <module '_codecs' (built-in)>, 'encodings.aliases': <module 'encodings.aliases' from 'C:\\Python36\\lib\\encodings\\aliases.py'>, 'encodings.utf_8': <module 'encodings.utf_8' from 'C:\\Python36\\lib\\encodings\\utf_8.py'>, '_signal': <module '_signal' (built-in)>, '__main__': <module '__main__' from 'E:/python_01/day18/code/day18/5.sys模块.py'>, 'encodings.latin_1': <module 'encodings.latin_1' from 'C:\\Python36\\lib\\encodings\\latin_1.py'>, 'io': <module 'io' from 'C:\\Python36\\lib\\io.py'>, 'abc': <module 'abc' from 'C:\\Python36\\lib\\abc.py'>, '_weakrefset': <module '_weakrefset' from 'C:\\Python36\\lib\\_weakrefset.py'>, 'site': <module 'site' from 'C:\\Python36\\lib\\site.py'>, 'os': <module 'os' from 'C:\\Python36\\lib\\os.py'>, 'errno': <module 'errno' (built-in)>, 'stat': <module 'stat' from 'C:\\Python36\\lib\\stat.py'>, '_stat': <module '_stat' (built-in)>, 'ntpath': <module 'ntpath' from 'C:\\Python36\\lib\\ntpath.py'>, 'genericpath': <module 'genericpath' from 'C:\\Python36\\lib\\genericpath.py'>, 'os.path': <module 'ntpath' from 'C:\\Python36\\lib\\ntpath.py'>, '_collections_abc': <module '_collections_abc' from 'C:\\Python36\\lib\\_collections_abc.py'>, '_sitebuiltins': <module '_sitebuiltins' from 'C:\\Python36\\lib\\_sitebuiltins.py'>, 'sysconfig': <module 'sysconfig' from 'C:\\Python36\\lib\\sysconfig.py'>, 'sitecustomize': <module 'sitecustomize' from 'C:\\Program Files\\JetBrains\\PyCharm 2018.1.4\\helpers\\pycharm_matplotlib_backend\\sitecustomize.py'>, 're': <module 're' from 'C:\\Python36\\lib\\re.py'>, 'enum': <module 'enum' from 'C:\\Python36\\lib\\enum.py'>, 'types': <module 'types' from 'C:\\Python36\\lib\\types.py'>, 'functools': <module 'functools' from 'C:\\Python36\\lib\\functools.py'>, '_functools': <module '_functools' (built-in)>, 'collections': <module 'collections' from 'C:\\Python36\\lib\\collections\\__init__.py'>, 'operator': <module 'operator' from 'C:\\Python36\\lib\\operator.py'>, '_operator': <module '_operator' (built-in)>, 'keyword': <module 'keyword' from 'C:\\Python36\\lib\\keyword.py'>, 'heapq': <module 'heapq' from 'C:\\Python36\\lib\\heapq.py'>, '_heapq': <module '_heapq' (built-in)>, 'itertools': <module 'itertools' (built-in)>, 'reprlib': <module 'reprlib' from 'C:\\Python36\\lib\\reprlib.py'>, '_collections': <module '_collections' (built-in)>, 'weakref': <module 'weakref' from 'C:\\Python36\\lib\\weakref.py'>, 'collections.abc': <module 'collections.abc' from 'C:\\Python36\\lib\\collections\\abc.py'>, 'sre_compile': <module 'sre_compile' from 'C:\\Python36\\lib\\sre_compile.py'>, '_sre': <module '_sre' (built-in)>, 'sre_parse': <module 'sre_parse' from 'C:\\Python36\\lib\\sre_parse.py'>, 'sre_constants': <module 'sre_constants' from 'C:\\Python36\\lib\\sre_constants.py'>, '_locale': <module '_locale' (built-in)>, 'copyreg': <module 'copyreg' from 'C:\\Python36\\lib\\copyreg.py'>}
四.os模块: 和操作系统交互的模块
补充:
os模块主要所做的事儿
定制了很多方法 间接的帮助你去调用操作系统的命令 获得结果
然后帮助你分析整理成我们需要的数据类型的形态
你也可以os.popen/os.system直接取调用操作系统的命令 获得结果
但是 分析和整理的工作需要你自己做
用os模块的方法本身能够完成的功能我们就用定制好的方法就够了
如果有一天 你发现os模块定制好的功能解决不了我们的问题了
而刚好操作系统的命令能够很好地帮助我们解决问题
这个时候就用os.popen/os.system
(1)与文件夹操作相关的
建立文件夹:
os.makedirs('dirname1/dirname2'):可生成多层递归目录
os.mkdir('dirname'):生成单级目录;相当于shell中mkdir dirname
os.makedirs('dir1/dir2') #建立多个文件夹
os.mkdir('dir3') #建立一个文件夹
os.mkdir('dir3/dir4') #建立多个文件夹
只能删除空文件夹:
os.rmdir('dir3/dir4')
os.removedirs('dir3/dir4')
os.removedirs('dir1/dir2') #下面如果有非空子文件夹,删除上一层
os.rmdir('dirname'):删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.removedirs('dirname1');若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
整理文件夹:
file_lst = os.listdir('D:\sylar\s15')
for path in file_lst:
print(os.path.join('D:\sylar\s15',path)) # 可以在不同的系统运行
os.listdir('dirname'):查看当前目录下的所有文件夹和文件
列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.path.join: 拼接目录
os.stat('path/filename'): 获取文件的信息
(2)和 运行,执行程序 相关的:
exec/eval执行的是字符串数据类型的 python代码
os.system和 os.popen是执行字符串数据类型的 命令行代码
补充:
os.system("bash command") 运行shell命令,直接显示
os.popen("bash command).read() 运行shell命令,获取执行结果
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
import os
统计文件大小
os.path.getsize('路径') # python的命令
dir 路径 \C # 操作系统的命令 帮助你显示当前路径下的所有文件和文件夹
os.system('dir 路径') # 使用python语言直接执行操作系统的命令
os.listdir('路径') # 使用python语言的os模块提供的方法 间接调用了操作系统命令 # 程序员 python开发的
# 和python代码打交道 # 学习python的人
# web开发
# 运维开发 : 运维功底 熟悉操作系统命令 exec('字符串数据类型的python代码')
eval('执行字符串数据类型的python代码') os.system('执行字符串数据类型的操作系统命令')
os.popen('执行字符串数据类型的操作系统命令,并返回结果') os.getcwd # 获取当前执行命令的时候所在的目录
os.chdir # 修改当前执行命令的时候所在的目录
os.system('dir'):执行操作系统的命令,没有返回值,实际的操作/删除一个文件 创建一个文件夹 exec
程序要处理这些路径 运行shell命令,直接显示
os.popen('die').read:适合做查看类的操作 运行shell命令,获取执行结果
os.getcwd() : current work dir 当前工作目录,并不是指当前文件所在的目录,是指当前文件是在哪个目录下执行的. 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir('D:\sylar\s15\day18'): 切换当前的工作目录. 改变当前脚本工作目录;相当于shell下cd
python 常用模块(一): random , time , sys , os模块部分知识.的更多相关文章
- day18 python模块 random time sys os模块
day18 python 一.random模块 取随机整数 import random print(random.randint(1,2)) #顾头顾尾 p ...
- day15-Python运维开发基础(json序列化模块、random / time / zipfile / OS模块函数)
1. json序列化模块 # ### json """ 所有编程语言都能够识别的数据格式叫做json,是字符串 json: 将数据类型序列化成字符串 pickle:将数据 ...
- sys,os,模块-正则表达式
# *__conding:utf-8__* """"我是注释""" sys,os模块 import sysimport os pr ...
- day2_python的数据类型,sys,os模块,编码解码,列表,字典
今天主要了解了python的数据类型,sys,os模块,编码解码,列表,字典 1.数据类型:int(python3没有长整型)文本总是Unicode,str表示二进制用byte类表示布尔型:True( ...
- time random sys os 模块
时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日 ...
- random,time,sys,os,序列化模块
random模块(随机数模块) 取随机小数: random.random() 取0-1之间的小数 random.uniform(x, y) 取x-y之间的小数 取随机整数: random.randin ...
- python 全栈开发,Day28(复习,os模块,导入模块import和from)
一.复习 collections 增加了一些扩展数据类型 :namedtuple orderdict defaltdict队列和栈time 时间 三种格式 : 时间戳 结构化 字符串random 随机 ...
- time | sys | os 模块,递归删除文件,项目分析
一,复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块 ...
- random,time,sys,os
import random print(random.random()) #(0,1)大于0且小于1之间的小数 print(random.randint(1,3)) #大于等于1且小于等于3之间的整数 ...
随机推荐
- iOS关于md5 32位加密
导入头文件: #import <CommonCrypto/CommonDigest.h> //md5 32位 加密 (小写)- (NSString *)md5:(NSString *)st ...
- C++动态时间显示
#include <iostream> #include<stdlib.h> #include<windows.h> #include<string> ...
- python tkinter chk
视频过程中的练习, 可以在python2.7下运行. 001: hello,world: 1 2 3 4 5 6 from Tkinter import Label, Tk root = Tk() t ...
- Java序列化对象-字符串转换
package com.test; import com.alibaba.fastjson.JSON; import org.junit.Test; import java.io.ByteArrayI ...
- PC浏览器播放m3u8
HLS(HTTP Live Streaming)是苹果公司针对iPhone.iPod.iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案.在 HLS 技术中 Web 服务器向客户 ...
- jeecg好用吗,看看大家的评价
大家都会有个疑问,jeecg好用吗? 看看大家的评价
- android的体系结构
android 体系结构:采用软件堆层的架构 ,四层1应用程序“: 提供一系列的核心应用程序 2应用程序框架 :提供安卓平台基本的管理功能和组件重用机制activityManager 管理应用程序的生 ...
- cookie操作:设置cookie、读取cookie、删除cookie
一.设置cookie function setCookie(name, value){ Days = 1; var exp = new Date(); exp.setTime(exp.getTime( ...
- iOS 申请distribution证书, 公钥,私钥
私钥只有在本机生成CSR文件的时候会产生,公钥会在CSR文件传给apple时,apple产生.
- 使用CLR Function代替T-SQL函数,优化检索效率
前言: 在使用存储过程查询数据中,T-SQL字符串拆分函数效率低下,这个时候我们可以采用CLR Function代替T-SQL函数,使用DLL执行字符串分解过程,并返回值到SQL中.测试复杂运行的速度 ...