Python练习-分布式任务
本部分练习Python分布式任务。在Python的multiprocessing模块中,提供了BaseManager类,可以非常简单快速的创建分布式调度任务。 思想也很简单,服务端开启端口,注册信息传递的队列,接收端链接对应地址和端口,拿到队列,获取其中传递的信息,进行对应处理即可。 如果有结果传回,可以在注册一个队列用于传递结果即可。样例代码如下: 服务端 # 分布实任务样例 imp...
本部分练习Python分布式任务。在Python的multiprocessing模块中,提供了BaseManager类,可以非常简单快速的创建分布式调度任务。 思想也很简单,服务端开启端口,注册信息传递的队列,接收端链接对应地址和端口,拿到队列,获取其中传递的信息,进行对应处理即可。 如果有结果传回,可以在注册一个队列用于传递结果即可。样例代码如下: 服务端 # 分布实任务样例 imp...
本部门练习Python多线程操作,Python中得多线程虽然为真正得POSIX 多线程,但是由于全局进程锁GIL得存在,在计算密集型业务中,并不能发挥真正并发的作用。 Python中的多线程主要通过threading模块实现,结果操作与Java多线程和Python多进程类似。 # 多线程练习 import threading def thread_run(text): pri...
本部门学习Python多进程编程,若在linux环境下,可以使用fork函数,windows环境下没有该函数,可通过Process模块实现。 # windows没有fork调用,因此无法使用os.fork函数 # 使用multiprocessing模块 def sub_process_runner(name): print("I am a child process name: ...
本部门学习Python的json转换操作。跟之前学的通过bytes的序列化接口非常类似。只是在类转换的时候略有不同。 一、dict对象转换 对于dict对象,可直接进行通过json.dumps/json.dump接口转换字符串或保存到文件中。 d = dict(name='Bob', age=18) print(json.dumps(d)) json_file_path = os.path...
本部分学习Python序列化相关操作。序列化主要是为了将内存中的对象持久化到磁盘(文件)以便于后续从文件中恢复对象。可用于对象持久化和网络传输。 本文主要学习字节流序列化操作。Python中用字节流序列化对象用pickle模块。 一、对象转字节(序列化) 通过pickle.dumps()方法,可以直接生成序列化后的字节流,如: import json import os.path imp...
本部分学习Python的IO操作,包括StringIO、BytesIO以及文件(夹)操作3个部分。 一、StringIO StringIO用于在内存中生成并操作字符串。操作模式和之前练习的文件内存操作类似,是通过IO流的模式进行操作。代码如下: # 1. string io import os from datetime import datetime from io import S...
本部门练习Python文件读写操作。与Java类似,需要注意文件打开后的关闭操作。 # 文件操作 import os # 因为一定要关闭文件流,所以写在finally里 try: file = open('.\\resources\\file_demo') print(file.read()) finally: if file: file.clos...
本部分学习Python代码调试和测试方法。可用的代码调试方法有: print打印 logging记录 pdb调试/pdb.settrace() unittest单元测试等。 样例代码如下: # 程序调试 # 1.用断言 import pdb def div(s): n = int(s) assert n != 0, "n is zero" return 10 ...
本部分练习python中的异常处理,相当于Java中的try…catch…finally,不同的是: 1.Python中的语句是try….except….finally 2.Python中有try….except…else…finally语句,期中else语句是当没有异常捕获时执行; 3.Python中主动抛出异常的语句时raise。 # 1.try except 捕获error imp...
本部分学习用Type和metaClass动态创建类,添加属性和方法。 # 使用元类 type 可以检查对象类型,也可以动态创建一个新类 class Student(object): def __init__(self, name, gender): self.name = name self.gender = gender def do_s...