操作文件和目录。Python内置的os模块也可以直接调用操作系统提供的接口函数。例如,在操作系统中定义的环境变量,全部保存在os.environ这个变量中,可以直接查看。要获取某个环境变量的值,可以调用os.environ.get('key')。
序列化。把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。Python提供了pickle模块来实现序列化。
多任务的实现有3种方式:多进程模式;多线程模式;多进程+多线程模式。Python既支持多进程,又支持多线程。多进程和多线程的程序涉及到同步、数据共享的问题,编写起来更复杂。
多进程。Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程。Windows没有fork调用,multiprocessing模块提供了一个Process类来代表一个进程对象。创建子进程时,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动,这样创建进程比fork()还要简单。join()方法可以等待子进程结束后再继续往下运行,通常用于进程间的同步。如果要启动大量的子进程,可以用进程池的方式批量创建子进程。subprocess模块可以让我们非常方便地启动一个子进程,然后控制其输入和输出。Python的multiprocessing模块包装了底层的机制,提供了Queue、Pipes等多种方式来交换数据。