当前位置: 首页 / 技术分享 / 正文
Python入门教程之文件读写操作-好程序员Python教程

2020-02-10

  好程序员Python教程入门之文件读写操作,Python是随着人工智能时代的来临而火爆起来的编程语言,入门简单、功能强大,吸引了人们的广泛学习加入。想要学好Python,一定要从基础学起,然后进阶深入学习,今天小编就给大家分享好程序员Python教程入门教程中文件处理的读、写操作。

Python4

  注意,Python中,不需要导入外部库来读取和写入文件,因为Python为创建、写入和读取文件提供了内置的函数。

  读文件

  打开一个文件用open()方法(open()返回一个文件对象,它是可迭代的)

  >>> f = open('test.txt', 'r')

  r表示是文本文件,rb是二进制文件(这个mode参数默认值就是r)。如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在。

  文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。

  >>> f.close()

  由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现。

  Python文件对象提供了三个方法: read()readline() readlines()。每种方法可以接受一个变量以限制每次读取的数据量。

  read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。

  readlines() 之间的差异是后者一次读取整个文件,像.read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Pythonfor ... in ...结构进行处理。

  readline() 每次只读取一行,通常比readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用readline()

  写文件

  写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:

  >>> f = open('test.txt', 'w') # 若是'wb'就表示写二进制文件

  >>> f.write('Hello, world!')

  >>> f.close()

  我们可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。因此还是用with语句来得保险:

  with open('test.txt', 'w') as f:

  f.write('Hello, world!')

  Python文件对象提供了两个方法:write()writelines()

  write()方法和read()readline()方法对应,是将字符串写入到文件中。

  writelines()方法和readlines()方法对应,也是针对列表的操作。它接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。

  文件处理的类型:

  只要处理类型加上bbytes),表示只这样操作(一般不知道写入编码的时候用);

  'r'(读) :读取出来的内容为字符串类型;

  'rb'(只读):以二进制的方式读取;

  ’r+‘(可读写):以读的方式打开,支持写入;

  'w'(写入) :创建新内容,覆盖旧内容;

  'w+’(写读):以创建的模式打开,支持读取;

  读写和写读指针都会停在最后(读写,不可读取刚写内容,写读:可以读取刚写的内容)。

  想了解更多Python教程入门知识,你可以关注“好程序员”微信公众号,定期发布技术热点和行业趋势分析。如果你想参加专业的好程序员Python培训班,可以来申请两周免费试听,亲身感受教学效果!

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
IT培训IT培训
在线咨询
IT培训IT培训
试听
IT培训IT培训
入学教程
IT培训IT培训
立即报名
IT培训

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号