1,open(),对文件进行读写操作之前,要先打开文件,获取文件的句柄

懒人专用方法,文件打开后不用关闭

with open(r'somefile.txt','r+',encoding='utf8') as f:

f.readlines()

1、open(file_name[,access_mode][,buffering])

(1)参数说明
file_name:一个包含了你要访问的文件路径及文件名称的字符串值。尽量使用绝对路径
access_mode:打开文件的方式:这个参数是非强制的,默认文件访问模式为只读(r)
r,只读
w:写之前会清空文件的内容
a:追加的方式,在原本内容中继续写
buffering:先写到缓存中
如果buffering的值被设置为0,就不会有寄存;如果值为1,访问文件时会缓存行;如果值位大于1的整数,表明了这就是寄存区的缓冲大小;如果取负值,寄存区的缓冲大小则为系统默认。该参数也是非强制性的。
(2)返回值
该语句表示返回的File_object是一个指向文件的指针(一个文件对象)文件句柄。当以只读模式(r)打开一个不存在的文件时,就会报IOError异常(文件不存在),但如果是以写或追加模式(w/a/a+)打开一个不存在的文件时,默认会创建该文件,但如果是所在路径中有目录不存在,也会报IOError异常
 
创建一个文件:
fp=open('d:\\tmp\\01.txt',w ) #创建并打开文件01.txt,用写的方式,文件句柄赋给fp
 
2、文件操作模式

r,w,a
r+:可读可写
w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
 
rb wb ab 读写二进制
3,获取文件句柄后,就可以对文件进行操作了,常用操作方法
(1)fp.closed#判断文件是否已经关闭。返回true如果文件已被关闭,否则返回false

(2)fp.mode#输出读写模式。返回被打开文件的访问模式。
(3)fp.name#返回文件的名称。
(4)fp.close()#刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
(5)flush()#把缓冲区中的内容持久化写到磁盘里,缓存区写满的情况,系统会自动调用flush()方法。
(6)next()#返回下一行,并将文件操作标记位移到下一行。把一个file用于for ... in file这样的语句时,就是调用next()函数来实现遍历的
(7)seek(offset)#文件指针移动到oofset位置,空标识移动到0位置

文件的读取位置

有的时候我们只想读文件的一部分的内容,或者我们需要从文件的某个位置读数据,应该怎么操作呢,用seek()函数

file_obj.seek(offset,whence=0)

#seek主要是在文件中移动指针,从whence(0表示文件头,1表示当前位置,2表示文件尾)偏移offset个字节

====123.txt===

123456789

1)从头读3个字符

f=open('123.txt')

f.seek(0,0)

print f.read(3)

f.close()

>>123

2)从尾读3个字符

f=open('123.txt')

f.seek(-3,2)#2表示从文件指针指向尾巴,-3表示向前移动3个字节

print f.read(3)#读3个字节

f.close()

>>789

(8)tell()#返回文件操作标记的当前位置,以文件的开头为原点 ;
(9)裁剪文件truncate([size])
        用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。
        f1.truncate()#清空文件
4,文件的读写
(1)read([size]) #size:读取的长度,以byte为单位。如果不指定参数,表示一次性读取全部内容,以字符串形式返回,并且每一行结尾会有一个"\n"符号
(2)readline([size]) #调一次读取一行,如果给定了size,有可能返回的只是一行的一部分,以字符串的形式返回,并且结尾会有一个换行符"\n"。读完一行,文件操作标记移动到下一行的开头。返回的是字符串
(3)readlines([size]) 
###读取文件的全部内容,这个函数的内部是通过循环调用readline()来实现的,返回的是列表格式,每一行是列表的一个元素,并且结尾会有一个换行符"\n"
(4)write(str) #把str写到文件中,write()并不会在str后加上一个换行符 ,只能写字符串
(5)writeline()#每次只写入一行
(5)writelines(seq) 
seq:把seq(序列)的内容全部写到文件中(多行一次性写入)。也不会自动加入换行符。

注意:writelines()方法是针对列表的操作。它接收一个字符串列表作为参数,也就是seq是一个列表

 

 
 

Python--基础文件读写操作的更多相关文章

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

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

  2. python里文件读写操作

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

  3. 【Python】文件读写操作

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

  4. python的文件读写操作

    文件读写 本文转自廖雪峰老师的教程https://www.liaoxuefeng.com/wiki/1016959663602400/1017607179232640 读写文件是最常见的IO操作.Py ...

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

    一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r':默认值,表示从文件读取数据.'w':表示要向文件写入数据,并 ...

  6. C语言基础文件读写操作

    整理了一份C语言的文件读写件操作代码,测试时打开相应的注释即可. #include <stdio.h> #include <stdlib.h> #include <uni ...

  7. python基础--文件的操作

    #r w a 文件读取操作 默认打开为读操作 #f=open('coldplay.txt','r',encoding="utf-8")#open函数默认已系统编码方式打开windo ...

  8. python 基础 ---- 文件读写

    文件是一种存储在存储存储媒介上的信息或数据 常用的文件类型 文件 的打开关闭 close() 关闭文件 文件的打开路径 绝对路径 : 文件在操作系统中标准的存放路径 相对路径: 与目前引用文件的相对位 ...

  9. python进阶--文件读写操作

    Python读写文件 1. open 使用open打开文件后一定要记得调用 文件对象的close()方法.比如可以用try --finally语句来确保最后能关闭文件. >>>f1 ...

  10. python之文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)的作用

    'r':只读.该文件必须已存在. 'r+':可读可写.该文件必须已存在,写为追加在文件内容末尾. 'rb':表示以二进制方式读取文件.该文件必须已存在. 'w':只写.打开即默认创建一个新文件,如果文 ...

随机推荐

  1. (C#)为应用程式设定运行权限(System.Security类下的GenericIdentity,GenericPrincipal,PrincipalPermission)

    最近看书<编写高质量代码改善C#程序的157个建议>,知识点备忘: System.Security.Principal.GenericIdentity==>表示一般用户 System ...

  2. JavaScript函数的中实参个数和形参个数的获取

    首先先理解下什么是函数的形参和函数的实参,其实很好理解的,下面举例说明 如何获取形参的长度以及实参的长度 获取实参的长度 可以看到控制台输出的长度是3, 这里有疑问了,arguments是什么那? a ...

  3. VMWare Workstation和VMWare vSphere(转)

    VMware workstation一定是安装在window操作系统上的. VMware vSphere可以直接安装在x86机器上,使这台机器完全虚拟化. VMware vSphere主要是企业级用户 ...

  4. android Notification 的使用(锁定通知栏)

    近期一直在研究 android .并一边研究一边做应用.当中遇到了把程序通知常驻在 Notification 栏,而且不能被 clear 掉(就像android QQ一样)的问题.经过研究实现了其功能 ...

  5. every row of W is a classifier for one of the classes

    every row of W is a classifier for one of the classes As we saw above, every row of W is a classifie ...

  6. PAT 1055. 集体照 (25)

    拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排任何人矮: 每排中最高者站中间(中间位置为m ...

  7. 说说JSON和JSONP,也许你会豁然开朗,含jQuery用例(转载)

     前言: 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域 ...

  8. python3保存一个网页

    import requests res = requests.get("http://www.baidu.com") savefile = open("baidu.htm ...

  9. The Great Pan

                                             The Great Pan Time Limit:1000MS     Memory Limit:65536KB    ...

  10. 系统安装记录 install OS

    上个系统很乱,基本系统是lfs7.7,上面应用都是基于lfs7.9,基本系统是才接触lfs时搭建的,打包保存后一直没怎么使用过,到lfs7.10快出来的时候有段时间有空就拿出来跑了一下,安装了一些软件 ...