博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
15(os、random、sys、)(json、pickle )
阅读量:5121 次
发布时间:2019-06-13

本文共 2408 字,大约阅读时间需要 8 分钟。

前言:个人觉得前期没必要太纠结os、和sys的一些详细指令,花时间去记没必要

os、sys、random

  os模块主要是和操作系统的交互,主要包括以下三种功能

    1、文件夹和文件的处理:

      创建文件夹: os.makedirs('x')  --可创建多层目录

      删除文件夹: os.rmdir('x')  --删除单级空目录

      删除文件:os.remove('x') --删除文件

    2、路径的处理:路径的拆分、拼接、计算大小、判断目录是否存在、是否为文件/文件夹、以及绝对路径等等

      os.listdir('x'):列出该路径下所有的路径和目录,以列表的形式。

      os.stat('x'):获取文件或者目录信息

      os.path.abspath('x'):获取绝对路径

      os.path.exists('x'):判断文件是否存在,返回Booleans

      os.stat('x').st_size: 获取文件大小

      os.path.join(x1,x2):将多个字符串路径拼接成一个完整的路径  ---常用

      os.path.getatime('x')/os.path.getmtime('x'):文件或者目录的最后存取/修改时间。

      os.path.isfile('x')/os.path.isdir('x'):判断文件/目录是否存在。

      ----还有一些基本很少用到,就不记了

    3、执行操作系统命令:

      os.system('xxx')     

  sys模块主要是和python解释器打交道的(前期不常用):

    sys.args:在外部向程序内部传递参数

    sys.path:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。

    sys.modules:全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。

     当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法。

 

  random随机模块

    random.uniform(x,y) :取x-y区间内的小数

    random.randint(x,y):取x-y范围内的整数/random.randrange(x,y,z):取x-(y-1)范围内的整数,z表示步长。

    random.choice(list):在list中随机取一个值,多次操作可能重复

    random.sample(list,x):在list中随机取x个值,不可能出现重复数据

    random.shuffle(list):打乱一个列表的顺序,在原列表直接进行修改

    random练习:写一个发红包的程序

    

1 # 发红包 2 def red_packet(money, num): 3     money = money * 100  # 先转换成分,然后取整数 4     ret = random.sample(range(1, money), num-1)  # sample()可以从指定的序列中,随机的截取指定长度的片断, 5     ret.sort()  # 排序 6     ret.insert(0, 0)  # 前面的0是索引, 后面的0是插入0 7     ret.append(money)   # 结尾追加money 8     for i in range(len(ret)-1): 9         yield (ret[i+1] - ret[i])/10010 11 12 ret_g = red_packet(100, 10)13 for m in ret_g:14     print(m)15 16 '''17 思路:18     1、先转换成分取整数,最后转成元,可以正常保留两位小数,省了很多事儿。19     2、因为要分等num份,所以要sample的次数为num-1。20     3、排序可避免取值为负的问题。然后取值应该是sample之后的列表中每后一位减去前一位的值,这样全部加起来才是刚好等于money数量(而不是直接sample之后list值直接操作,这里要想清楚)21     所以这里首尾要加上0和money22 '''

    

 

json和pickle

  json的基本操作

    json.dumps(dic):序列化 字典转json

    json.loads(str):反序列化 json转字典

    与之对应的还有json.dump()和json.load()主要用来读写json文件函数

    dumps和loads是操作内存,一般用于网络传输

    dump和load是操作文件,一般用于文件操作。

  json的缺点:

    json能够处理的数据类型是非常有限的:只能处理字符串,列表,字典,数字且字典中的key只能是字符串。

    打个比方。如果字典的key是数字,那么转换时会强制转换成字符串,且转回字典之后还是字符串。同理,如果value是一个元祖,也会转成list,不会转回来

    

  pickle:

    pickle的语法与json一样。区别就是json主要用于数据传输。而pickle主要用于项目内部的,即使用范围仅限python。那么pcikle也就没有上面json的缺点了。

  

转载于:https://www.cnblogs.com/cbslock/p/11176240.html

你可能感兴趣的文章
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
STM32F10x_RTC秒中断
查看>>
display:none和visiblity:hidden区别
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
SpringMVC学习总结(三)——Controller接口详解(1)
查看>>
牛的障碍Cow Steeplechase
查看>>
Zookeeper选举算法原理
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>
构造者模式
查看>>
http和https的区别
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
今天新开通了博客
查看>>
AS3优化性能笔记二
查看>>
Java高阶回调,回调函数的另一种玩法
查看>>
ElasticSearch(站内搜索)
查看>>
4----COM:a Generative Model for group recommendation(组推荐的一种生成模型)
查看>>