Py学习  »  Python

python--IO编程

猛犸象和剑齿虎 • 4 年前 • 156 次点击  

IO在计算机中指Input/Output,输入与输出。由于程序和运行时的数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘,网络等,就需要IO接口。
IO编程中,流是个很重要的概念,可以想象成一个只能单向流动的水管。Input Stream就是数据从外面流进内存,Output Stream就是数据从内存留到外面。
由于CPU和内存的速度远远高于外设的速度,所以在IO编程中就存在速度严重不匹配的问题。所以引入同步与异步的概念。

  • 同步:CPU等待,程序暂停执行后续代码,待数据写入磁盘后,再接着执行。
  • 异步:CPU不等待,只是告诉磁盘“您老慢慢写,不着急,我接着干别的事情去了。”后续代码可以立刻接着执行。
    异步的性能远高于同步,但缺点是复杂。
    操作IO的能力都是有操作系统提供的,每种编程语言都会把操作系统提供的低级C接口封装起来方便使用。
    读写文件之前,我们必须了解到,在磁盘上读写文件的功能都是由操作系统提供的,现代的操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象,然后通过操作系统提供的接口从这个文件对象中读写数据。
    f=open("文件路径.文件名","r")
    r代表读的意思。
    f.read()可以一次性读取文件的全部内容。
    f.close()关闭文件。文件对象会占用操作系统的资源。
    由于文件不存在时会抛出错误,当产生错误时f.close()不会执行。所以我们采用另外一种方法。
    with open("文件路径.文件名","r") as f:
    print(f.read())
    这种方法不用调用f,close()而且代码更简洁。
    f.read()方法是一次性读取全部内容,为防止数据量过大引起内存问题。用readlines()一次性读取所有内容并按行返回列表。
  • 读取二进制文件
    f=open("文件路径.文件名","rb")
    f=open("文件路径.文件名","r",encoding='gbk',errors=ignore)编码以及忽略错误。
  • 写入方法
    with open("文件路径.文件名","w") as f:
    f.write('hello,world')
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34681
 
156 次点击