文件
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))
- n位随机数字+大写字母
- 数字与字母都随机
- 字母数字位置也随机
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"])