美文网首页Python学习
python 06 IO编程

python 06 IO编程

作者: 小鱼儿喜欢花无缺 | 来源:发表于2018-01-30 10:03 被阅读5次

IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。Input Stream就是数据从外面(磁盘、网络)流进内存,Output Stream就是数据从内存流到外面去。对于浏览网页来说,浏览器和新浪服务器之间至少需要建立两根水管,才可以既能发数据,又能收数据。
StringIO

很多时候,数据读写不一定是文件,也可以在内存中读写。
StringIO顾名思义就是在内存中读写str。
要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:

from io import StringIO
f = StringIO()
f.write('hello')
5
f.write(' ')
1
f.write('world!')
6
print(f.getvalue())
hello world!
getvalue()方法用于获得写入后的str。
要读取StringIO,可以用一个str初始化StringIO,然后,像读文件一样读取:
from io import StringIO
f = StringIO('Hello!\nHi!\nGoodbye!')
while True:
... s = f.readline()
... if s == '':
... break
... print(s.strip())
...
Hello!
Hi!
Goodbye!

BytesIO

StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。
BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:

from io import BytesIO
f = BytesIO()
f.write('中文'.encode('utf-8'))
6
print(f.getvalue())
b'\xe4\xb8\xad\xe6\x96\x87'
请注意,写入的不是str,而是经过UTF-8编码的bytes。
和StringIO类似,可以用一个bytes初始化BytesIO,然后,像读文件一样读取:
from io import BytesIO
f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
f.read()
b'\xe4\xb8\xad\xe6\x96\x87’

操作文件和目录

操作文件和目录的函数一部分放在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')

相关文章

  • python 06 IO编程

    IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。I...

  • Python 编程核心知识体系【汇总】

    https://woaielf.github.io/2017/06/13/python3-all/

  • Python IO编程

    1. 打开文件 f = open(filename,mode) 'r','r+'模式下,文件必须存在,否则报错。而...

  • Python IO编程

    一、文件读写 读 写 二、StringIO和BytestIO StringIO和BytesIO是在内存中操作str...

  • Python IO编程

    文件读写 读文件由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了...

  • Python:IO编程

    同步IO与异步IO:由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题。举个...

  • Python IO编程

    IO在计算机中指Input/Output,也就是输入和输出 同步和异步的区别就在于是否等待IO执行的结果。 文件读...

  • Python IO编程

    IO 在编程语言中特指输入和输出「即 input 和 output」。在 IO 编程中 stream (流)是一个...

  • python io 编程

    文件读写 读取文件 写文件 延展,非UTF-8编码的文本文件读写需要: 所有模式的定义及含义可以参考Python的...

  • Python IO编程

    IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的...

网友评论

    本文标题:python 06 IO编程

    本文链接:https://www.haomeiwen.com/subject/fpmqzxtx.html