Python基础十七:IO编程一:读写文件


Python基础系列内容为学习廖雪峰老师Python3教程的记录,廖雪峰老师官网地址:廖雪峰Python3教程


Author:yooongchun

Email:yooongchun@foxmail.com


  • I/O :IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。

  • 文件读写

    • 读文件:Python提供open 函数来进行文件的打开操作,然后读取数据:
    file_path="decrator.py" # 文件地址
    f=open(file_path,"r",encoding="UTF-8",errors="ignore") #以只读("r")模式打开文件
    contents=f.read() # 读取所有文件内容
    print("contents:\n%s"%contents)
    f.close()# 关闭文件

    注意:最后别忘了关闭文件,不然程序只要在运行就会一直占用系统资源,别的程序请求文件权限就会失败。另外,我们通过encoding="UTF-8"来指定读取文件的编码模式,使用errors="ignore"来指明读取文件遇到错误时忽略错误。

    • 文件读写经常会遇到问题:比如文件占用不能写入,比如找不到文件等,这时就需要用到之前我们介绍的try...except...finally... 语句来执行
    file_path="decrator.py" # 文件地址
    try:f=open(file_path,"r",encoding="UTF-8",errors="ignore") #以只读("r")模式打开文件contents=f.read() # 读取所有文件内容print("contents:\n%s"%contents)
    except IOError as e:print("打开文件出错!")
    finally:f.close()# 最后关闭文件

    上面的写法有些复杂,Python提供了一种简单的语法来处理文件关闭问题:with open(xx,...) as xx

    file_path="decrator.py" # 文件地址
    with open(file_path,"r",encoding="UTF-8",errors="ignore") as f:contents=f.read() # 读取所有文件内容print("contents:\n%s"%contents)

    上面的程序打开文件后不论执行完与否都会关闭文件。

    • 写文件:写文件同样需要使用open函数打开,然后使用w模式即可:
    import os
    file_path="test.txt" # 文件地址
    with open(file_path,"w",encoding="UTF-8",errors="ignore") as f:print("write to file...")f.write("Hello,this is a test for writing file to disk...") #   写出文件内容
    if os.path.isfile("test.txt"):# 读取文件并打印内容print("read file contents...")with open(file_path,'r',encoding='UTF-8',errors='ignore') as f:print(f.read())print("remove file...")os.remove("test.txt")# 删除生成的文件
    • 需要提醒的一点是,读文件时使用read读入虽然方便,但是当文件很大时(比如10GB),会导致内存不够,导致程序崩溃,这时,我们最好根据需要进行读入操作:read(size) ,给read 函数指定一个size 读取时会根据其来决定每次读入的字符数,或者也可以使用readline来每次读入一行或者readlines读入所有行,然后每行作为一个list中的一个元素
  • StringIOBytesIO :有的时候,数据读写不一定是文件,也可以在内存中进行读写,StringIO 即是在内存中进行字符串的读写,而要进行二进制数据的读写就需要BytesIO

    from io import StringIO#导入包
    f=StringIO()#创建一个StringIO对象
    f.write("Hello World!")#写数据
    print(f.getvalue())#使用getvalue()方法获得值并打印

    BytesIO使用方法跟StringIO 是一样的:

    from io import BytesIO
    f = BytesIO()
    f.write('中文'.encode('utf-8'))
    print(f.getvalue())

Python基础十七:IO编程一:读写文件相关推荐

  1. python基础 实战作业 ---Excel基本读写与数据处理

    代码地址如下: http://www.demodashi.com/demo/11650.html 看完本篇需要: 10min 作业练习需要: 0.5h~3h(依练习者对python熟悉程度而定) 看完 ...

  2. 【Python基础】网络编程之IP地址

    [Python基础]网络编程之IP地址 文章目录 IP 地址的介绍 1. IP 地址的概念 2. IP 地址的表现形式 2. IP 地址的作用 3. 查看 IP 地址 4. 检查网络是否正常 3. 小 ...

  3. python中newfile是干嘛用的_Python基础介绍 | File I\O 读写文件

    如何用Python读写文件呢?我们有许多种办法,包括使用Pandas或者使用os相关的工具,我们来看一下: 首先,得明白文件路径的事情: import os current_file = os.pat ...

  4. 数据挖掘之Python基础(二)函数与文件读写

    前言 前一篇文章我们讲到了Python的基本的数据结构,如果对于Python不是很熟悉,建议先看前一篇文章,或者关注公众号QStack,里面有全部文章. if条件语句 基本所有语言的if条件语句都差不 ...

  5. Python中的文件IO操作(读写文件、追加文件)

    [注]:下述操作过程是结合多种网络方法,然后自己实践的结果.写在这里,主要目的是加深记忆,也希望能帮助后来者 Python中文件的读写包含三个步骤:打开文件,读/写文件,关闭文件. 文件打开之后必须关 ...

  6. Go 学习笔记(49)— Go 标准库之 io/ioutil(读写文件、获取目录下的文件和子目录、创建临时目录和文件)

    1. 简要概述 import "io/ioutil" 包 io/ioutil 实现一些 I/O 实用程序函数. 2. 相关函数 2.1 func ReadAll func Read ...

  7. java.io几种读写文件的方式

    一.Java把这些不同来源和目标的数据都统一抽象为数据流. Java语言的输入输出功能是十分强大而灵活的. 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作 ...

  8. java中IOUtil.readLong_使用io/ioutil进行读写文件

    读文件: package main import ( "fmt" "io/ioutil" ) func main() { b, err := ioutil.Re ...

  9. java io importnews_java(JSP)读写文件操作

    [有些时候,会报错,错误提示为: Can not find the tag library descriptor for http://java.sun.com/jsp/jstl/core 解决此问题 ...

  10. Python基础知识(9):文件操作(IO技术)

    目录 文本文件和二进制文件 文件操作相关模块概述 创建文件对象open() 文本文件的写入 基本的文件写入操作 常用编码介绍 ASCII ISO8859-1 GB2312,GBK,GB18030 UT ...

最新文章

  1. 你必须懂也可以懂的微服务系列三:服务调用
  2. Oracle 10g 数据库的备份和还原
  3. vue swiper循环播放无效解决
  4. mysql权限系统的工作原理_Mysql权限系统工作原理
  5. ZooKeeper 典型的应用场景
  6. Spring Cloud 与微服务学习总结(14)—— 云原生时代,如何从 Java 开发者转型微服务?
  7. wuauclt.exe是什么进程?
  8. LINUX警告:检测到时钟错误。您的创建可能是不完整的。-转
  9. snyk 项目漏洞检测
  10. 教你如何弹好吉他-合理的安排你的练习时间
  11. DNW5.0 USB 不OK
  12. html caption属性的值,如何设置caption属性
  13. 用魔法打败魔法,传染性疫苗能消灭传染病吗?
  14. dns配置异常怎么修复_电脑出现dns错误不能上网怎么办?dns错误修复方法
  15. twm图形模式以及恢复
  16. 解决 eclipse 上 Keystore was tampered with, or password was incorrect
  17. 华为MAC-VLAN举例
  18. 简单的音频播放功能MediaPlayer使用中所遇到的坑。
  19. 哈佛结构与冯诺依曼结构(含STM32系统结构解析)
  20. 按钮控制LED灯的亮灭

热门文章

  1. ERROR: librtmp not found 解决方案
  2. 宝塔linux 屏蔽ip,宝塔屏蔽国外IP保护网站安全
  3. 我的世界java版游戏图标_minecraftpe JAVA版游戏包mod
  4. Java字符串排序比较。
  5. 基于stm32单片机外文文献_单片机STM32外文文献翻译、中英文翻译
  6. matlab做瑞利信道仿真,瑞利信道怎么用 matlab做仿真
  7. C语言中b lt a lt c,销售回收上海贝尔7360业务板NGLT-A-C, FGLT-A, FANT-F,FGLT-B
  8. [黑客光盘2009年更新]100张黑客光盘 数百G黑客资源~~~~~~~~~~~~~
  9. ie内核出现问题的解决方法
  10. 【笔记】lamp架构框图