文件操作 随机数和时间模块

文件

1.文本文件:xx.txt,xx.log,xx.ini,本质是字符串,存在磁盘上的字符串(持久化)
2.二进制文件:xx.mp3,xx.jpg,xx.avi
3.参数:
file:文件 绝对路径和相对路径
mode:r (只读) w(只写) a(追加模式)b(二进制模式)
enconding:字符集GBK(windows)UTF-8(linux)
4.open函数执行后返回文件对象

f = open("big_data_19-4.txt","a")
#“w"只写模式,当文件不存在时,会创建文件,当文件存在时,会覆盖原文件
#“a”追加模式,当文件不存在时,会创建文件,当文件存在时,在文件结尾处追加新的内容
f.write("\n开兴就好!")
#write将字符串写入文件中
f.close()
f1 = open("big_data_19-4.txt")
read()  #将文件中所有数据以字符串的方式获得
data = f1.read(15)  #\n不显示 ,但也占一个字符
readline() #按行读取数据
data = f1.readline()  #只读一行
data = f1.readlines()   #将所有行放到一个列表中
f1.close()   
print(data)

电子词典
1.加载词库

def load_word(file):
	print("正在加载词库.....")
	f = open(file,enconding="utf-8")
	data = f.rreadlines()
	f.close()
	print("词库加载成功......")
	return data

2.从词库中查找单词或汉字

def find_word(w,word_list):
	count = 0
	for line in word_list:
		if w in line:
			count+=1
			print(count,line,end="")
def main():
	word_list = load_word("word.txt")
	while True:
		w = input("请输入你要查找的单词或汉字,输入Q退出")
		if w =="Q":
			break
		find_word(w,word_list) 

随机数

随机数 :随机一个整数randint() 包含开头结尾

print(random.randint(1,43))

随即一个小数random() 0~1

print(random.random())

随机一个范围randrange(开始值,结束值,步长值) 含头不含尾0-9

print(random.randrange(0,10,2))

choice() 随机一个元素

print(random.choice('"a1","b2","c3","d4"'))

示例:1.数字6位验证码

print(random.randint(1000,9999))
  1. n位随机数字+大写字母
  1. 数字与字母都随机
  2. 字母数字位置也随机
 def  verification_code(n):
 	code = ""
 	for i in range(n):
 		num = random.randint(0,9)
 		if i % 2 == 0:
 			code += chr(random.randint(65,90))
 		else:
 			code += str(random.randint(0,9))
 	return code 
	print(verification_code(8))

时间模块

1.时间戳 1970-01-01 00:00:00 (格林威治时间0时区) 秒数

import time 
print(time.time())

优点:存储方便,占有空间小,方便计算操作
缺点:不方便查看时间

2.时间元组

print(time.localtime())

优点:方便程序调用
缺点:没有格式

3.格式化时间字符串(需要时间的格式)

print(time.strftime("%d/%m/%Y %H:%M:%S"))

随机抽数

import random
print(random.randint(1,43))

1.将时间戳-> 时间元组
(1)gmtime -> utc 国际标准时间
(2)localtime -> 本地时间

72047023
print(time.gmtime(72047023))
print(time.localtime(72047023))

2.将时间元组转为时间字符串

 print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(0)))
 print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(0)))

3.将时间字符串转为时间元组

print(time.strptime("2200-11-11 12:30:29","%Y-%m-%d %H:%M:%S"))

4.将时间元组转为时间戳

print(time.mktime(time.strptime("2200-11-11 12:30:29","%Y-%m-%d %H:%M:%S")))

时间戳 <-> 时间元组 <-> 时间字符串

datetime是time模块的一个封装

import datetime
print(datetime.datetime.now())

哈希加密

import hashlib # md5 可以被暴力破解
code = hashlib.sha512("123456".encode("utf-8"))
code.update("(#‵′)靠つ".encode("utf-8"))  # "加盐"操作防止暴力破解
print(code.hexdigest())

json 模块
1.json 原本是JavaScript中的一种数据格式,类似于Python中的字典
2.Python中的对象 -> JSON格式的字符串 (序列化)
3.JSON格式的字符串 -> Python中的数据对象 (反序列化操作)
4.dump 导出操作 python对象-> json字符串
5.load 导入操作 json字符串-> python对象

import json

dic = {
 	'name':'zj',
 	'age':18,
 	'tup':('a',1,2,3,4,True,False),
 }

# json.dumps(obj) 字符串导出
# json.dump(obj,f)  文件写入
 with open("data.json","w",encoding="utf-8") as f:
  	json.dump(dic,f)

 data = json.loads('{"pi":3.141592653}')
 print(data["pi"]*3)

json.loads(字符串) -> python对象
json.load(文件对象) -> python对象

with open("data.json","r",encoding="utf-8") as f:
 	data = json.load(f)
 print(data["name"])
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页