1、open函数语法:
python通过open函数打开文件,建立程序与文件之间的连接。
open函数语法:open(filename[,mode[,buffering]])
其中filename是指要进行操作的文件名称,由文件名称和路径组成,需要加引号。
mode为操作模式参数,包括读、写、追加等。
buffering是缓冲参数,控制着文件的缓冲。当buffering=0或者False时,I/O就是无缓冲的,所有的读写操作都是直接针对硬盘的,如果是1或者True,I/O就是有缓冲的,python是用内存来代替硬盘,使得程序运行更快。大于1代表缓冲区的大小,单位为字节,-1或者其他任意负数代表使用默认的缓冲区大小。
只有filename参数是必须指定的,mode和buffering参数则是可选的,mode参数的缺省值为'r'。
 
2、参数mode的取值:
(1)基本取值:

r、w、a为打开文件的基本模式,分别表示只读、只写(覆盖写)、追加(追加写)。
b、t、+、U,与上面三个基本模式组合使用。
注意:文本模式用于打开文本文件,二进制模式用户打开二进制文件。
(2)常见的mode组合取值:
(3)举例说明:
现在window系统PC机硬盘上存在文件G:\file1.txt,对其进行演示操作。
①r模式:
报错的原因是路径中包含的'\'被识别为转义符,因此造成文件路径错误。
不能直接使用print打印对象f1的内容,需要使用read方法读取内容后,方能打印。
上面的open函数中虽然没有指定mode参数,但其实使用了mode的缺省值'r'。
效果一样,所以当只使用'r'参数时,可以省略。
另外,这里如果不想使用两个反斜杠,那么可以使用‘r+字符串’形式:
字符串前加r代表此字符串为原样显示,不转义。第一个'r'就是让字符串原样显示,第二个'r'是open模式。
②w模式:
由于只使用了'w',因此程序对该文件只有写权限,没有读权限,因此使用read方法读时会报错。
完成这一步操作后,通过资源管理器去查看file1.txt的文件内容,如下,发现里面已被清空。
这是因为还没有断开程序与文件的连接,所以追加的内容尚未保存,因此需要使用close方法来关闭文件(即断开文件与程序的连接)。重新打开文件可以看到,文件已被新内容覆盖更新。
③a模式:
报错的原因是'a'模式只有写的权限,没有读的权限。
完成write操作后,但在关闭文件前,可以看到file1.txt文件并没有被更新。
关闭文件后,可以看到新内容被追加到文件末尾。
如果想换行追加,可以加上在字符串中加上换行符。
④r+模式:
'r+'模式是同时读写模式,但是必须指定写的位置,从指定的位置开始按字符逐个覆盖写。
从上面的两次写操作过程可以看出,第一次通过seek(0)指定从第一个字符开始覆盖写,第二次通过seek(5)从第6个字符开始覆盖写,没有被覆盖的字符继续保留。
如果不指定其实位置就开始进行写操作的话,就会报错,如下。
对于seek()方法的具体作用,在后面将会谈到。
⑤w+模式:
对于'w+'模式,其只是在'w'模式上添加了能读取文件对象的权限。
另外,从上面的例子中需要注意一点,一旦通过'w+'模式将一个文件指定给一个文件对象,那么这个文件就立即被清空,所以这里的f10.read()的结果是空串。也就是说,使用'w'或者'w+'模式,原文件的内容并不是在使用write方法时被覆盖掉,而是在授予写权限时就立即被清空。
⑥a+模式:
'a+'模式相对于'a'是增加了读文件的权限,但是从上例中可以看出,使用了read方法后,再进行write写操作就会报错,而不使用read方法直接进行write写操作是不会报错的,并且追加写成功。
 
3、常用的文件方法:
(1)基本介绍:
(2)举例说明:
现有文件:G:\file2.txt,文件内容如下:
read()方法是读取全部文件内全部数据内容,以字符串形式显示,对于文件中的换行符,在结果中以'\n'显式显示。读读取前,指针位于文件头(位置为0),读取全部后,指针位于文件末尾的下一位。返回文件位置用tell()方法,结果为长整型。
read(size)方式是指定读取字符串的字节数。最初指针放在文件开头,读取完毕后,移动至已读取字符串的下一位。
所以这里,使用read(5)读取了前5个字符,指针移动到第6个字符处,也就是编号为5L的位置。接着再使用read(7)读取的时候就从第6个字符开始读,以此类推。
使用readline()方法,逐行读取,每次读取一行,读取完毕后指针移到下一行开头。
readlines()方式是将读取的结果以列表形式存储,读取完毕后,指针移到文件末尾的下一位。原文件中的每一行是返回列表中的一个元素。
使用'a'模式进行追加写,打开文件后,指针仍指在文件头,通过write()方法写进字符串后,指针移到文件尾的下一位。
这个例子与上个例子的区别用于说明,当我们想在文件中追加写多行时,需要在追加的字符串中显式的写出换行符(\n)。
现有文件file3.txt,文件内容如下:
使用readlines()方法将读取文件的内容保存成列表。然后使用writelines()方法将该列表追加到另一个文件的末尾。每一个元素称为一行,由于起始位置为原文件的末尾下一位(并不是下一行),所以追加的第一行并没有单独成行,而是在原文件的最后一行的后面。
上例可以说明,writelines()方法接受列表,将列表每个元素作为一行写入文件中。
注意,因为有write()方法,所以python中是不存在writeline()方法的。
  

初见Python<6>:文件读写的更多相关文章

  1. 【转】Python之文件读写

    [转]Python之文件读写 本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 ...

  2. 【Python】文件读写操作

    Python的文件读写有点类似php的文件读写.php的文件读写已经在<[php]让记事本成为你调控变量的控制台>(点击打开链接)说过了,以下用一个小样例说明Python的文件读写. 在F ...

  3. (转)Python之文件读写

    Python之文件读写 原文:https://www.cnblogs.com/huilixieqi/p/6494891.html 本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 ...

  4. python 基础-文件读写'r' 和 'rb'区别

    原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...

  5. Python之文件读写

    本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...

  6. python之文件读写详解

    打开文件 函数open() 参数说明: file:文件路径 mode: 文件的读写方式,默认'r',只读方式: buffering:设置缓冲策略,0用于二进制文件,1为行缓冲,用于文本模式:默认二进制 ...

  7. python中文件读写

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

  8. python的文件读写笔记

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

  9. python里文件读写操作

    文件读写操作一种基本操作,但是里面也存在很多需要注意的问题,例如字符编码.内存缓冲.指针位置等等.如果忽视这些问题就会引起很多不必要的麻烦.简单来说,文件的读写分为几个过程: 打开文件,并定义操作文件 ...

随机推荐

  1. OPENId是什么, OAUTH 是什么

    what is openId open id is said to be a protocol which uses url as username, so if a website supports ...

  2. 14、char和varchar的区别?

    就长度来说: ♣ char的长度是不可变的; ♣ 而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为1 ...

  3. 关于js闭包官方解释庖丁解牛式理解

    闭包:是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 变量+环境 首先按这个句子主谓宾来分解.闭包是一个表达式,通常是一个函数. 这意味着第一它 ...

  4. Python 对象模型 -- (转)

    面向对象的纯粹性 在很久很久以前,C++还被称为面向对象语言(现在一般称为多范式通用语言),人们就对C++的面向对象的纯粹性提出了质疑,主要有以下几点: 并非所有的对象都是对象(很拗口?),比如指针本 ...

  5. Python3 文件基本操作

    Python文件的打开模式有: r,只读模式(默认).w,只写模式.[不可读:不存在则创建:存在则删除内容:]a,追加模式.[可读: 不存在则创建:存在则只追加内容:]"+" 表示 ...

  6. GDB实战

    程序中除了一目了然的Bug之外都需要一定的调试手段来分析到底错在哪.到目前为止我们的调试手段只有一种:根据程序执行时的出错现象假设错误原因,然后在代码中适当的位置插入 printf ,执行程序并分析打 ...

  7. 使用cURL POST上传文件

    使用cURL POST上传文件 http://blog.csdn.net/v6543210/article/details/20152575

  8. 访问WEB-INF目录中的文件

    WEB-INF下面的文件具有安全性,直接在浏览器中输入地址是访问不到的,可以通过servlet来访问. 方法1: 利用<jsp-file>/WEB-INF/a.jsp</jsp-fi ...

  9. leetcode 之Reverse Linked List II(15)

    这题用需要非常细心,用头插法移动需要考虑先移动哪个,只需三个指针即可. ListNode *reverseList(ListNode *head, int m, int n) { ListNode d ...

  10. 小程序css

    样式导入 @import /** common.wxss **/ .small-p { padding:5px; } /** app.wxss **/ @import "common.wxs ...