首页 > 代码库 > 第九章-IO编程

第九章-IO编程

IO是输出输入的意思

在计算机中常用到的数据交换的地方是磁盘, 网络等

输入流是从外面(磁盘, 网络)流进内存

输出流是从内存流到外面(磁盘, 网络)

同步IO是指等待IO完成再继续执行

异步IO是在IO操作的时候CPU继续执行别的工作

同步和异步的区别就在于是否等待IO执行的结果

1 文件的读写

  文件的操作见我

2 StringIO和BytesIO

2.1 StringIO

  通过导入io模块来获得StringIO

  StringIO是在内存中读取str

  通过write()写入内容

  通过getvalue()方法获得的得到的内容str

  同样可以逆向操作, 读内存str, 此时可以使用read()和readline()方法

  具体操作如下

from io import StringIO

str = StringIO()
str.write("hello")
str.write(" ")
str.write("world")
print(str.getvalue())
str = StringIO(‘Hello!\nHi!\nGoodbye!‘)
print(str.read())

2.1 BytesIO

  StringIO操作的只能是str, 如果要操作二进制数据, 就需要使用BytesIO

  同样需要通过导入io模块来获得BytesIO   

  在Python中str类型是Unicode, 想要获得bytes需要使用encode方法会编码

  获得bytes内容用getvalue()

  读取bytes内容用read()

  具体实例如下

from io import BytesIOf = BytesIO()f.write(‘中文‘.encode(‘utf-8‘))print(f.getvalue())# b‘\xe4\xb8\xad\xe6\x96\x87‘f = BytesIO(b‘\xe4\xb8\xad\xe6\x96\x87‘)print(f.read())

3 操作文件和目录

  导入os模块可以实现操作系统的dir, cp等功能

import os

  查看操作系统类型, posix是Linux系列操作系统, nt是win系列系统

os.name

  获取详细系统信息, unama()只是linux系统有

os.uname()

  查看环境变量

os.environ

  要获取某个环境变量的值

os.environ.get(‘PATH‘)

  查看当前目录的绝对路径

os.path.abspath(‘.‘)

  创建目录

os.mkdir(‘/Users/michael/testdir‘)

  删除目录

os.rmdir(‘/Users/michael/testdir‘)

  

    

 

第九章-IO编程