os模块 && sys模块 && random模块 && json模块

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# import os,sys
# ####os模块
# #1.os.system(command)
# #执行系统命令,完成后退出
# os.system('ipconfig')
#
# #2.os.popen(command).read()
# #os.popen(command)执行系统命令,返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出,如下:
# res = os.popen('ipconfig').read()#打印系统命令
# print(res)
#
# #3.os.vesion
# #获取python版本
# print(sys.version)
#
# ###sys模块
# #4.sys.argv
# #获取执行python文件时的参数,返回的是一个list,第一个元素为当前运行python文件的文件名
# print(sys.argv)
# #打印:C:\Miniconda3\python.exe E:/python01/python00/day06/day06_01.py #此行信息pycharm中运行任何python文件时均打印其路径信息
# # ['E:/python01/python00/day06/day06_01.py']
# ##用途:
# #终端输入时打印如下内容
# # E:\python01\python00\day06>python day06_01.py --help
# # ['day06_01.py', '--help']
# # E:\python01\python00\day06>python day06_01.py test
# # ['day06_01.py', 'test']
# #根据如上打印可以有如下用法,根据传入不同的参数来实现不同功能的调用
# import sys
# iput = sys.argv
# if iput[1]=='--help':
# print('--help打印')
# if iput[1]=='test':
# print('test打印')
# if iput[1]=='install':
# print('install 打印')
#终端执行结果如下:
# E:\python01\python00\day06 > python
# day06_01.py - -help
# --help打印
#
# E:\python01\python00\day06 > python
# day06_01.py
# test
# test打印

#应用:执行python文件时通过传参的方式,将第二个参数写入到第一个参数的文件中
# import sys
# lis = sys.argv
# if len(lis)>=3:
# print(lis[1])
# if lis[1].endswith('.txt'):
# with open (lis[1],'a+') as f:
# f.write(lis[2])
# else:
# print('传入参数错误')
#终端执行结果打印如下,此时有aa.txt文件生成,且123456写入到aa.txt文件中:
# E:\python01\python00\day06>python day06_01.py aa.txt 123456
# aa.txt

#手动安装py模块时,解压缩,执行python setup.py install //安装 python setup.py test //测试这个模块 python setup.py --help //显示帮助文档


####random模块
#随机模块 random
import random
# #5.random.random()
# #随机取0到1的浮点数
# print(random.random())
# #如打印:0.7399633070719253

# #6.random.randint(n1,n2)
# #随机取n1到n2间的整数,既顾头也顾尾,即随机取到的数n1=<n<=n2
# print(random.randint(0,20))
# #如打印:2

# #7.random.choice()
# #字符串、list、字典中随机取一个元素
# #随机获取字符串中任意一元素
# print(random.choice('adg56sde'))
# #如打印:6
# #随机获取列表中任意一元素
# print(random.choice([1,2,3,'f']))
# #如打印:1
# #随机获取字典中任意一key
# s={'a':1,'b':2}
# print(s)
# #打印:{'a': 1, 'b': 2}
# print(list(s))#打印字典中的所有key
# #打印:['a', 'b']
# #print(random.choice(s))#这样写会报错
# print(random.choice(list(s)))#随机选取字典中的一个key
# #如打印:a
# print(s[random.choice(list(s))])#随机选取字典中的一个key,并通过字典value的获取方式获取key的value
# #如打印:1

# #8.random.uniform(n1,n2)
# #获取指定范围内的随机浮点数
# print(random.uniform(1,9))
# #如打印:2.7914771546964126
# #获取指定范围内的小数点后保留两位的小数
# f = random.uniform(1,10)
# print('%.2f'%f)
# #如打印:8.41
# print('%0.2f'%(random.uniform(1,10)))
# #如打印:8.55

# #9.random.shuffle()
# #打乱列表顺序
# li = [1,2,3,4,5,6]
# random.shuffle(li)
# print(li)
# #如打印:[2, 5, 1, 4, 3, 6]

#应用:随机产生指定条数的手机号码
import random,string
#个人代码:
# def callnum(n):
# f = open('num.txt','a+')
# for i in range(n):
# lis1 = ['134', '135', '136', '137', '138', '139', '150', '151', '152', '158', '159', '157', '182', '187', '188','147', '130', '131', '132', '155', '156', '185', '186', '133', '153', '180', '189']
# lis2 = []
# lis3=[]
# lis2.append(random.choice(lis1))
# for i in range(8):
# n1 = random.randint(0, 9)
# lis2.append(str(n1))
# str1 = ''.join(lis2)+'\n'
# lis3.append(str1)
# print(str1)
# f.writelines(lis3)
# callnum(10)

#知识补漏:
#join:字符串拼接,可用于字符串、元组、列表,使用方法:'拼接字符'.join(拼接前的字符串、元组、列表)
#random.sample(seq,k):从指定序列seq中随机获取指定长度k的片断,以列表的形式打印
#string.digits:0-9;string.ascii_lowercase:小写字母;string.ascii_uppercase:大写字母;stringstring.ascii_letters:大小写字母;
#whitespace = ' \t\n\r\v\f'
# ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
# ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# ascii_letters = ascii_lowercase + ascii_uppercase
# digits = '0123456789'
# hexdigits = digits + 'abcdef' + 'ABCDEF'
# octdigits = '01234567'
# punctuation = """!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
# printable = digits + ascii_letters + punctuation + whitespace
# for i in range(4):
# print(random.sample(string.digits,8))
#打印:['0', '7', '5', '2', '6', '4', '3', '1']
# ['0', '6', '9', '2', '4', '1', '7', '3']
# ['5', '0', '7', '6', '3', '2', '8', '1']
# ['1', '8', '9', '6', '7', '2', '0', '3']

#老师代码:
def phone_num(num):
all_phone_nums = []
num_start = ['134', '135', '136', '137', '138', '139', '150', '151', '152', '158', '159', '157', '182', '187', '188','147', '130', '131', '132', '155', '156', '185', '186', '133', '153', '180', '189']
for i in range(num):
start = random.choice(num_start)
end = ''.join(random.sample(string.digits+string.digits,8))
print(end)
res = start + end + '\n'
print(res)
all_phone_nums.append(res)
with open('phone_num.txt','a+') as f :
f.writelines(all_phone_nums)

phone_num(10)

#9.json是一种通用的数据类型,所有的语言都认识
# #json是一个字符串
# #json串只能是双引号,单引号不行,但字典中可以

#10.json.dumps() json.dump()
#json.dumps(variable):将字典转化为json串,其返回值即为转化后的json串,即实现序列化
#json.dump(variable,file):将字典转化为json串,并将其写入到文件中,也是实现序列化
# import json
# a = {
# 'aa':1,
# 'bb':2,
# 'cc':3,
# 'dd':4
# }
# print(json.dumps(a))
# #打印:{"dd": 4, "aa": 1, "cc": 3, "bb": 2}
# fp = open('jsontest.json','a+')
# json.dump(a,fp)
# #文件fp中写入:{"dd": 4, "aa": 1, "cc": 3, "bb": 2}

#11.json.load() json.loads()
#json.load():将json文件转化为字典,即实现反序列化
#json.loads():将json串字符转化为字典,即实现反序列化
# import json
# a = '{"dd": 4, "aa": 1, "cc": 3, "bb": 2}'
# res = json.loads(a)
# print(res)
# #打印:{'aa': 1, 'cc': 3, 'bb': 2, 'dd': 4}
# print('a的类型为{ty}'.format(ty=type(a)))
# #打印:a的类型为<class 'str'>
# print('res的类型为{ty}'.format(ty=type(res)))
# #打印:res的类型为<class 'dict'>
# fp = open('jsontest.json')
# res = json.load(fp)
# print('json.load(fp)打印:{res}'.format(res=res))
# #打印:json.load(fp)打印:{'bb': 2, 'cc': 3, 'dd': 4, 'aa': 1}
# print('res的类型为{ty}'.format(ty=type(res)))
# #打印:res的类型为<class 'dict'>



import json
#10.字典转为json
names = {
'name':'wangjunxi',
'age':36,
'aa': 'wang',
'bb': 58,
'cc': 'junxi',
'dd': 39,
'ccd':'哈哈'

}
f = open('a.txt','a+',encoding='utf-8')
fw = open('c.txt','a+',encoding='utf-8')
fc = open('d.json','a+',encoding='utf-8')
f.write(str(names)) #将字典写入文件中
print(type(str(names)))
#打印:<class 'str'>
res = json.dumps(names,ensure_ascii=False)#将字典转化为json串
print(type(res))
#打印:<class 'str'>
fw.write(res)
fc.write(res)#进入fc文件中,选中json字符串,菜单栏中选中code-->reformat code 即可将一行显示的字符串重新布局为自动换行的格式
#json字符串转为字典
names_json = '{"aa": "wang", "age": 36, "ccd": "哈哈", "cc": "junxi", "dd": 39, "name": "wangjunxi", "bb": 58}'
names = json.loads(names_json)
print(names)
#打印:{'aa': 'wang', 'age': 36, 'name': 'wangjunxi', 'ccd': '哈哈', 'cc': 'junxi', 'bb': 58, 'dd': 39}
print(type(names))
#打印:<class 'dict'>

# #将json文件转为字典打印
# res = open('d.json',encoding='utf-8').read()#默认打开方式为r
# name_dic = json.loads(res)
# print(type(name_dic))
# print(name_dic)
#
# #load loads区别:对象,后者传入字符串,前者传入文件对象
# #dump dumps区别:dumps不用再写,直接写入,
#
# fw = open('zddqq.json','w',encoding='utf-8')
# #json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, separators=None,default=None, sort_keys=False, **kw)
# #()
# json.dump(names,fw,ensure_ascii=False)
#
# print(json.dumps(names))
# #打印:{"dd": 39, "cc": "junxi", "age": 36, "aa": "wang", "ccd": "\u54c8\u54c8", "bb": 58, "name": "wangjunxi"}
# print(json.dumps(names,ensure_ascii=False))
# #打印:{"dd": 39, "cc": "junxi", "age": 36, "aa": "wang", "ccd": "哈哈", "bb": 58, "name": "wangjunxi"}
# print(json.dumps(names,ensure_ascii=False,indent=5))
# #打印:
# # {
# # "dd": 39,
# # "cc": "junxi",
# # "age": 36,
# # "aa": "wang",
# # "ccd": "哈哈",
# # "bb": 58,
# # "name": "wangjunxi"
# # }

posted on 2017-11-16 23:22  yezi_396  阅读(159)  评论(0编辑  收藏  举报

导航