代码拉取完成,页面将自动刷新
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import asyncio
import hmac
import json
import os
import random
from io import BytesIO, StringIO
from multiprocessing import process
from pickletools import pickle
import AsyncCls
from Student import Json2Student, Student, Student2Json
# 应用程序主函数
def main():
print("This is my first Python App.")
# T_StringIO()
# Memeory_BytesIO()
# Filter_DirFile()
# OS_Dir_L("D:\\360Downloads\\Software")
# Pickle_Binary()
# Serialer_Json()
# MulProcess_Fork()
# Simulate_login()
method = AsyncCls.AsyncModule()
method.Async_key()
#
# hmac
#
def hmac_Md5(key, s):
return hmac.new(key.encode('utf-8'), s.encode('utf-8'), 'MD5').hexdigest()
class User(object):
def __init__(self, username, password):
self.username = username
self.key = ''.join([chr(random.randint(48, 122)) for i in range(20)])
self.password = hmac_Md5(self.key, password)
def Simulate_login():
login('henu', '123445')
login('miao', '123abc')
login('henu', 'abc123')
print('Ok')
def GetUserByName(userName):
db = {'henu': User('henu', 'abc123'),
'miao': User('miao', '123abc'),
'honey': User('honey', 'abc123'),
'alice': User('alice', '123456'),
}
return db[userName]
def login(username, password):
user = GetUserByName(username)
logResult = user.password == hmac_Md5(user.key, password)
print('user:{0} ,Login Status: {1}'.format(username, logResult))
#
# Fork 调用
#
def run_process(name):
print("Run child process %s (%s)" % (name, os.getpid()))
def MulProcess_Fork():
print("Fork On Process(%s)" % os.getpid())
p = process.BaseProcess(target=run_process, args=("Henu Miao"))
print("Process run")
p.start()
print("Process join")
p.join
# 读取内存流
def T_StringIO():
f = StringIO("Hello,With Miaomiao\r\nSecond Line")
while True:
s = f.readline()
if s == '':
break
print(s.strip())
# 文件流读取操作
def File_IO():
filePath = "D:\\IO.log"
with open(filePath, 'r') as f:
s = f.read()
print(s)
with open(filePath, 'a') as f:
f.write("Append to log with a line message")
with open(filePath, 'r') as fr:
s = fr.read()
print(s)
# 内存二进制操作
def Memeory_BytesIO():
f = BytesIO()
f.write("如果这都不算爱".encode('utf-8'))
print(f.getvalue())
# os.listdir
def Filter_DirFile():
items = [x for x in os.listdir('.') if(os.path.isfile(x))]
print(items)
# dir -l 模拟
def OS_Dir_L(dirPath):
if(type(dirPath) != str):
raise RuntimeWarning("参数类型不正确!")
if(os.path.exists(dirPath)):
print("Directory List for %s ...", dirPath)
for x in os.listdir(dirPath):
if(os.path.isdir(x)):
print("Path {0},Type {1}".format(x, 'Directory'))
elif (os.path.isfile(x)):
print("Path {0},Type {1}".format(x, 'File'))
else:
print("Path {0},Type NONE".format(x))
print("Directory List End")
else:
raise RuntimeWarning("指定的路径不存在!")
# 序列化
def Pickle_Binary():
stuInfo = Student("Miao", 28, 87)
print(stuInfo)
with open('D:\\student.log', 'wb') as fw:
pickle.dump(stuInfo, fw)
fw.close()
with open('D:\\student.log', 'r') as fr:
d = pickle.load(fr)
fr.close()
print(d)
'''JSon序列化'''
def Serialer_Json():
strfPath = "D:\\student.log"
stu = Student("MiaoMiao", 25, 88)
fw = open(strfPath, 'wt')
json.dump(stu, fw, default=Student2Json, skipkeys=False, sort_keys=True)
fw.close()
fw = open(strfPath, 'r')
# 反序列化
stuf = json.load(fw, object_hook=Json2Student)
fw.close()
if(isinstance(stuf, Student)):
print(stuf.ToString())
else:
print(stuf)
# 应用程序起始
if __name__ == '__main__':
main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。