鄙人学习笔记


文章目录

  • 文件读写
    • 打开文件
      • 举个例子1(以读方式打开)
      • 举个例子2(以写方式打开)
  • 读取文件
    • read
      • 举个例子1
    • readline
      • 举个例子2(继续用例子1的note.txt文件)
    • readlines
      • 举个例子3
    • for循环
      • 举个例子4
  • 写入文件
    • write
      • 举个例子1
    • writelines
      • 举个例子2
      • 举个例子3(以追加模式写入)

文件读写

对文件实现读写的基本操作步骤为:打开文件,读写文件,关闭文件。
本篇BLOG和本系列的下一篇BLOG会对文件读写的步骤进行一一举例说明。

打开文件

file_object = open(file_name, access_mode='r', buffering=-1)
功能:打开一个文件,返回一个文件对象。
参数:file_name————文件名;access_mode————打开文件的方式,如果不写默认为‘r’ 文件模式                        操作r                    以读方式打开.文件必须存在w                    以写方式打开文件.若文件不存在,则创建,若存在,则清空原有内容 a                    以追加模式打开.若文件不存在,则创建,若存在,也保留文件内容,并在文件末尾继续写 r+                   以读写模式打开 文件必须存在w+                   以读写模式打开文件不存在则创建,存在清空原有内容a+                   以读写模式打开 追加模式rb                   以二进制读模式打开 同rwb                   以二进制写模式打开 同wab                   以二进制追加模式打开 同arb+                  以二进制读写模式打开 同r+wb+                  以二进制读写模式打开 同w+ab+                  以二进制读写模式打开 同a+buffering————参数0表示无缓冲,1表示有行缓冲,如果是大于1表示直接指明缓冲区大小。如果不写或为负数则表示使用系统默认提供的缓冲机制。在py中,通常情况下这个参数我们都不写,直接用系统默认的就OK了.
返回值:成功返回文件流对象。失败得到IOError。

我们用open()打开一个文件,会返回给变量fd一个文件对象。打开一个文件之后,我们就可以对这个文件对象进行读写操作了。

备注:buffering表示,开辟的缓冲区类型。缓冲,表示系统自动的在内存中为每一个正在使用的文件开辟一个缓冲区,从内存向磁盘输出数据必须先送到内存缓冲区,装满缓冲区在一起送到磁盘中去。这样做,是为了减少与磁盘的交互次数,从而提高效率、保护了磁盘。举个例子:我们在用word写论文时,写了好几页,但没保存(假设word也没有帮我们自动保存),这些没保存的论文,就在缓冲区内。如果这时突然断电(假设我们此时用的是台式电脑)那么写了那么久的论文就会丢失。

图示:

举个例子1(以读方式打开)

我们在主py文件test02.py所在的文件夹内创建一个txt文件,里面写一些数据,如下图所示:

我们在主py文件中读取文件:

结果:

备注:别忘了最后一定要关闭文件!

举个例子2(以写方式打开)

(1)若文件不存在

首先,我们看一下我们的文件列表:

在python中,我们打开一个不存在的文件None.txt:

我们再看一下,文件列表:

新的文件创建出来了!

(2)文件存在, 且文件有内容

查看一下我们的note.txt文件,结果:

清空了!

读取文件

read

read([size])

用来直接读取字节到字符串中,最多读取给定数目个字节。如果没有给定size参数(默认值为-1)或者size值为负,文件将被读取直至末尾。文件过大时候,不建议直接读取到文件末尾,因为会消耗大量内存,读取时间也会更长,建议在non-blocking模式下使用。

举个例子1

首先看一下我们的数据文件:

(1) 不设置size参数,直接读取到文件末尾
我们读取一下:

输出结果:

(2)一次读取16个字节

①我们按照一次16个字节读取文件:

输出结果:

②我们按照一次1024个字节读取文件:

输出结果:

若一次想要读取的字节数,大于文件的字节数,则文件有多少字节,就读取多少字节。

(3)一次读取8个字节,但仍然想读完全部文件

循环读取:

结果:

readline

readline([size])

读取打开文件的一行(读取下个行结束符之前的所有字节)。没有给定size参数,则读取整行整行,包括行结束符,并作为字符串返回。和 read() 相同,它也有一个可选的 size 参数,默认为 -1,代表读至行结束符。如果提供了该参数,如果行的字节数超过size,则会返回不完整的行。

举个例子2(继续用例子1的note.txt文件)

(1)不设置size参数,读取一行

我们读取一下:

结果:

备注:当我们没有指定size时,readline遇到换行符才会结束。

(1)设置size参数

①我们按照一次4个字节读取行:

结果:

我们再读取一次:

结果:

由结果可知,第二次读取时,readline会沿着第一次读取的末尾,继续读取这一行剩下内容。

readlines

readlines([sizeint])

该方法并不像其它两个输入方法一样返回一个字符串。它会读取所有(剩余的)行然后把它们作为一个字符串列表返回。它的可选参数sizhint代表返回的最大字节大小,当sizeint不足该行的字节数时,也会得到这一行的内容。我们在使用时,一般不设置参数。

举个例子3

读取:

结果:

由结果可知,每一行,读取成了列表中的一个元素。

for循环

for line in fd:print(line)

文件对象本身也是一个可迭代对象,在for循环中可以迭代文件的每一行。

举个例子4

读取:

结果:

写入文件

write

write(string)

功能与 read() 和 readline() 相反。它把含有文本数据或二进制数据块的字符串写入到文件中去。

举个例子1

我们向空文件None.txt写入数据:

结果:

再写一行:

结果:

备注:如果想换行就要人为添加换行符\n。

writelines

writelines(str_list)

和 readlines() 相反,writelines()方法是针对列表的操作,它接受一个字符串列表作为参数,将它们写入文件。行结束符并不会被自动加入,所以如果需要的话,你必须在调用writelines()前给每行结尾加上行结束符。

举个例子2

我们None.txt写入数据:

结果:

举个例子3(以追加模式写入)

原来的note.txt文件:

写入:

结果:

备注:在追加模式a下,不能read()操作,因为它没有读取得权限。如果读取,则会报错。
如下所示:

结果:

报错!

若既想读又想写,则可以在各个参数值后添加【+】加号.如下图所示:

网络编程(part2)--文件读写之打开/读取/写入相关推荐

  1. 网络编程(part3)--文件读写之二进制文件读写/with操作

    鄙人学习笔记 文章目录 二进制文件读写 举个例子1(以二进制方式打开并读取txt文件) 举个例子2(以二进制方式打开并读取图片) 举个例子3(二进制文件打开并写入操作) 关闭文件 with操作 wit ...

  2. 网络编程(part5)--文件读写偏移量及文件描述符

    鄙人学习笔记 文章目录 文件读写偏移量(文件指针) 定义 举个例子1(读写操作的文件偏移量) 举个例子2(文件偏移量的初始位置验证) 基本操作 举个例子1(tell()函数) 举个例子2(tell() ...

  3. mfc打开指定路径下指定类型文件_Windows 网络编程:文件操作

    一次性进群,长期免费索取教程,没有付费教程. 教程列表见微信公众号底部菜单 进微信群回复公众号:微信群:QQ群:460500587 微信公众号:计算机与网络安全 ID:Computer-network ...

  4. Linux高级编程--05.文件读写

    缓冲I/O和非缓冲I/O 文件读写主要牵涉到了如下五个操作:打开.关闭.读.写.定位.在Linux系统中,提供了两套API, 一套是C标准API:fopen.fclose.fread.fwrite.f ...

  5. 简单介绍python编程之文件读写

    函数 open() 返回 文件对象,通常的用法需要两个参数: open(filename, mode) . f = open('workfile', 'w') 第一个参数是一个含有文件名的字符串.第二 ...

  6. python文件对象提供了3个读方法、分别是-python3 IO编程:文件读写

    打开文件对象 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从 ...

  7. Python文件(一):文件类型、文件的打开,读取写入,关闭、文件备份、文件和文件夹的操作

    一.文件 文件是存储在存储器上的一组数据序列,可以包含任何数据内容. 文件是数据的抽象和集合. 二.文件类型 文本文件:长字符串 二进制是信息按照非字符但有特定格式形成的文件,文件内部数据的组织格式与 ...

  8. 【java笔记】网络编程:文件上传案例

    原理:文件的复制 客户端读取本地的文件,把文件上传到服务器,服务器把上传的文件保存到服务器的硬盘上 步骤: 1.客户端使用本地的字节输入流,读取要上传的文件 2.客户端使用网路字节输出流,把读取的文件 ...

  9. Python 文件打开读取写入方法

    目录 前言 open()方法 with open()方法 实用案例 前言 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写 ...

最新文章

  1. 关于分页的一些经验。
  2. linux 垃圾桶快捷键,Linux的基本:为网上邻居配个垃圾桶
  3. tbb flow graph node types
  4. 学习笔记(59):Python实战编程-Graphics
  5. c ++向量库_在C ++中对2D向量进行排序
  6. django-自关联-三级联动的效果
  7. apache2.4.18中启用h2c
  8. Java环境安装手册
  9. php设置编程,php – 以编程方式设置基本图像
  10. 在工作中能学到的东西-2
  11. 【一天一个C++小知识】004.C++中内部链接和外部链接
  12. JAVA网络编程-TCP客户端与服务器端连接
  13. 数据结构算法-学习体系-持续更新
  14. Java实验-课程设计报告一:个人银行账户管理系统SavingAccountManageSystem-具体文档+源码...
  15. python绘制等高线图
  16. Android 关于IPV6 DNS的问题
  17. 宇视NVR录像机,录像下载过程中,查询录像搜索列别里面为空
  18. Vue3——v-md-editor(markDown编辑器)使用教程
  19. 国产浏览器的创新之路,拼的就是用户体验
  20. PCA9306—I2C总线和SMBus双向电平转换器

热门文章

  1. 机器学习:防止模型过拟合的方法
  2. java反射模式_Java反射机制详解
  3. PLSQL Developer中数值字段由科学计数法改为普通数值显示
  4. win10下Rabbitmq的安装和配置
  5. Thread.currentThread().getContextClassLoader().getResourceAsStream()读取配置文件
  6. py06-python基础-字典
  7. 2016-7-4收藏夹接口
  8. jQuery EasyUI datagrid本地分页
  9. EXCEL两组数相等红色标示并放到第三列_VBA
  10. The connection to adb is down, and a severe error has occured.问题解决方法小结