离线请勿留言

导航

 

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   # 修改当前执行命令的时候所在的目录
View Code

os.system('dir'):执行操作系统的命令,没有返回值,实际的操作/删除一个文件 创建一个文件夹 exec

程序要处理这些路径           运行shell命令,直接显示

os.popen('die').read:适合做查看类的操作     运行shell命令,获取执行结果

os.getcwd() : current work dir 当前工作目录,并不是指当前文件所在的目录,是指当前文件是在哪个目录下执行的.   获取当前工作目录,即当前python脚本工作的目录路径

os.chdir('D:\sylar\s15\day18'): 切换当前的工作目录.         改变当前脚本工作目录;相当于shell下cd

 

posted on 2018-08-20 20:51  离线请勿留言  阅读(207)  评论(0编辑  收藏  举报