1 Star 0 Fork 0

夏至如沫/Ex_Python

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.py 3.98 KB
一键复制 编辑 原始数据 按行查看 历史
MiaoShuaitao 提交于 2017-12-20 10:59 +08:00 . Init
#!/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()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/Toater_OSC/Ex_Python.git
git@gitee.com:Toater_OSC/Ex_Python.git
Toater_OSC
Ex_Python
Ex_Python
master

搜索帮助