社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python--IO编程

猛犸象和剑齿虎 • 6 年前 • 162 次点击  

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
 
162 次点击