python IO编程

IO编程

  IO在计算机中指的是input/output,其中的输入输出是以CPU为对象来讲的,由于CPU和内存的速度远高于外设的速度,所以在IO编程中,就存在着严重的速度不匹配问题。解决这个问题有两种思路:

  一是让CPU和内存等待着外设,这种成为同步IO,另一种是CPU不等待,继续执行下面的代码,这种称为异步IO。他们的区别就在于是否等待IO执行的结果。很明显使用异步IO来编写程序的性能远高于同步IO,但是异步IO的缺点是编程模型复杂。想想看,你得知道什么时候通知你“汉堡做好了”,而通知你的方法也各不相同。如果是服务员跑过来找到你,这是回调模式,如果服务员发短信通知你,你就得不停地检查手机,这是轮询模式。总之,异步IO的复杂度远远高于同步IO。

 


操作文件和目录

  可以再命令行中使用操作系统提供的命令来操作文件和目录,而再程序中进行这样的操作本质上也只是调用操作系统提供的接口,Python内置的os模块可以直接调用操作系统提供的接口

>>>import os 
>>>os.name#查看操作系统的类型'nt'代表的windows
>>>os.uname()查看操作系统的详细信息,再windows不提供

os.listdir( )获取当前路径下所有文件目录和文件名

  操作文件和目录的函数一部分在os模块中,一部分则在os.path中

# 查看当前目录的绝对路径:
>>> os.path.abspath('.')
'/Users/michael'
# 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来
>>> os.path.join('/Users/michael', 'testdir')#只是合成路径,并不要直接拼接字符串,这样可以处理不同操作系统的路径分隔符
'/Users/michael/testdir'
# 然后创建一个目录:
>>> os.mkdir('/Users/michael/testdir')
# 删掉一个目录:
>>> os.rmdir('/Users/michael/testdir')

  只是合成路径,并不要直接拼接字符串,而是调用os.path.join(),这样可以处理不同操作系统的路径分隔符,拆分路径使用os.path.split(),会把最后一个给分割出来

>>> os.path.split('/Users/michael/testdir/file.txt')
('/Users/michael/testdir', 'file.txt')

os.path.splitext()可以直接让你得到文件扩展名

这些合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作。

os.path.isdir()判断是否是个目录

文件操作

# 对文件重命名:
>>> os.rename('test.txt', 'test.py')
# 删掉文件:
>>> os.remove('test.py')

  

  创建文件,在open()中如果文件不存在,就会创建

复制文件

  复制文件由shutil模块提供的copyfile()函数,这个模块提供其他一些非常使用的操作,可以作为对os模块的补充

  

环境变量

  操作系统中定义的环境变量可以通过os.environ变量访问,可以通过os.environ.get('key')获取某个变量的值

原文地址:https://www.cnblogs.com/Gaoqiking/p/10562670.html