一、open函数:对文件读写之前,需要先打开文件,获取文件句柄

注意:open() file() 尽量使用open(),Python3以后不支持file()了

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)

2、mode文件操作模式

r,w,a

r+可读可写

w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

rb wb ab 读写二进制

3、通过open获取到的文件句柄可以对文件作的其他操作

(1)fp.closed

判断文件是否已经关闭。返回true如果文件已被关闭,否则返回false

(2)fp.mode

输出读写模式。返回被打开文件的访问模式。

(3)fp.name:

返回文件的名称。

(4) fp.softspace

如果用print输出后,是否跟一个空格符,false不打印,true则打印。

(5)fp.close()

刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。

(6)flush()

把缓冲区中的内容持久化写到磁盘里

缓存区写满的情况,系统会自动调用flush()方法。

调用flush的时机:写入了多少长度的数据,或者间隔了多长的时间

如果没有flush(),持久化内容丢失

(7)next()

# for i in fp:

# print i

把一个file用for...in file这样的循环遍历语句时,就是调用next()函数来实现。

文件句柄是一个迭代器???

fp=open(fileName,'r')

print fp.next()

print fp.next()

print fp.fileno() 判断当前操作的文件句柄是哪一个number

fp.close()

(8)裁剪文件truncate([size])

用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。

如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

fp='e:\tmp\03.txt'

f1=open(fp,'r+')

line=f1.readline()

print line

f1.truncate()

print f1.tell()

f1.close()

二、对文件作读写操作

1、常规的读写操作

(1)read([size])

size:读取的长度,以byte为单位。如果不指定参数,表示一次性读取全部内容,以字符串形式返回,并且每一行结尾会有一个" "符号。

(2)、readline([size])

调一次读取一行,如果给定了size,有可能返回的只是一行的一部分,以字符串的形式返回,并且结尾会有一个换行符" "。读完一行,文件操作标记移动到下一行的开头。

返回的是字符串

(3)、readlines([size])

(3.1)参数

size:指定很小的数字,会不生效,python 默认8k缓存区大小,需要大于8k生效

读取文件的全部内容,这个函数的内部是通过循环调用readline()来实现的

(3.2)返回值

返回的是列表格式,每一行是列表的一个元素,并且结尾会有一个换行符" "

(4)、writelines(seq)

seq:把seq(序列)的内容全部写到文件中(多行一次性写入)。也不会自动加入换行符。

注意:序列中的内容也必须是字符串类型的数据,才能成功写入文件。

(5)、write(str)

把str写到文件中,默认是不加换行符的,所以如果想换行的话,得手动加入换行符' '。

2、使用linecache模块读取文件

import linecache

允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行。

(1)linecache.getlines(filename,lineno)

从名为 filename 的文件中得到第 lineno 行。

这个函数从不会抛出一个异常–产生错误时它将返回”(换行符将包含在找到的行里)。

如果文件没有找到,这个函数将会在 sys.path 搜索。

(2)linecache.getlines(filename) 返回列表

从名为 filename 的文件中得到全部内容,输出为列表格式,以文件每行为列表中的一个元素,并以 linenum-1 为元素在列表中的位置存储

(3)linecache.clearcache()

清除缓存,如果你不再需要先前从 getline() 中得到的行

(4)linecache.checkcache([filename])

检查缓存的有效性。如果在缓存中的文件在硬盘上发生了变化,并且你需要更新版本,使用这个函数。

如果省略 filename,将检查缓存里的所有条目。

(5)linecache.updatecache(filename)

更新文件名为 filename 的缓存。如果 filename 文件更新了,使用这个函数可以更新

linecache.getlines(filename)返回的列表。

另:读取文件之后你不需要使用文件的缓存时需要在最后清理一下缓存,使linecache.clearcache()清理缓存,释放缓存。

这个模块是使用内存来缓存你的文件内容,所以需要耗费内存,打开文件的大小和打开速度和你的内存大小有关系。

打印奇数行的文件:

fp='e:\tmp\05.txt'

list1=linecache.getlines(fp)

for i in list1[::2]:

print i

3、pickle模块和cPickle模块

对文件整体的读写

(1)、pickle模块(Python提供一个标准的模块)

列表内容持久存储到内存中

使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为持

久地储存对象(序列化)

(2)、cPickle 列表和文件内容的转换

它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多(比pickle快1000倍),推荐使用。

import cPickle as p

p.dump(list,fp) 把列表list内容保存到内存中,存入一个文件(这个文件带有cPickle特有的格式)中

fp:打开的文件句柄,如:fp=open('d:\tmp\test1.txt','wb')

list=p.load(fp) 把之前存放在文件中的内容保存到列表list中

三、读取文件的位置定位

1、tell()

返回当前操作文件读取到的位置

一个中文:3个字节

Windows下" ’(换行符)占两个字节,Linux下 mac下 .

2、seek(offset[,from]) 移动游标到想去的位置

from:,默认是0,2:从末尾开始计算偏移;1:从当前位置作为标准位置

offset:移动的总距离,可以是正数,可以为负数

python对文件的读操作有哪些方法-Python之文件操作:文件的读写相关推荐

  1. python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...

    html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...

  2. Apollo 笔记(03)— Cyber RT Python 接口(channel 读和写、server/client 通信、record 文件读写信息查询、timer 时间定时器操作)

    https://cyber-rt.readthedocs.io/en/latest/CyberRT_Python_API.html https://cyber-rt.readthedocs.io/en ...

  3. python对文件的读操作方法有哪些-用python实现读写文件常见操作方式

    1 文件读取全文本操作 在一定场景下我们需要把文本全部内容读取出来,进行处理.python提供三种函数读取文件,分别是read readline readlines, read():读取文件的全部内容 ...

  4. python读文件一次读特定行_Python3实现从文件中读取指定行的方法 python读取文本内每行指定内容...

    如何用python读取文本中指定行的内容在这个世界上说不出口的话太多了,你能不能陪小编去,你能不能留下来,你能不能帮帮小编,你对小编很重要,所以你可不可以不要走,到最后哽咽出口的却是,没关系,小编可以 ...

  5. python替换文件中的字符串_Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)...

    题目: 1.首先将文件:/etc/selinux/config 进行备份 文件名为 /etc/selinux/config.bak 2.再文件:/etc/selinux/config 中的enforc ...

  6. python对文件的读操作有哪些方法-Python中文件的读取和写入操作

    从文件中读取数据 读取整个文件 这里假设在当前目录下有一个文件名为'pi_digits.txt'的文本文件,里面的数据如下: 3.1415926535 8979323846 2643383279 wi ...

  7. java文件边读边写_[Java教程]node.js 利用流实现读写同步,边读边写

    [Java教程]node.js 利用流实现读写同步,边读边写 0 2017-09-10 13:00:14 //10个数 10个字节,每次读4b,写1blet fs=require("fs&q ...

  8. python做上位机读usb数据_使用python实现win10系统和arduino usb串口通信

    前言 arduino有很多可以直接使用的传感器,可以很方便的获取大量的环境数据. 常见的有:温度(室温,冰箱,水箱等场景) 湿度(房间空气湿度,花盆土壤湿度等场景) 声(声控灯,噪音检测,深海测量,医 ...

  9. python中日期和时间格式化输出的方法小结_Python 时间操作例子和时间格式化参数小结...

    1.取过去具体时间的方法: #!/usr/bin/python import time #取一天前的当前具体时间 time.strftime('%Y-%m-%d %T',time.localtime( ...

最新文章

  1. oracle cluster n,10g Rac的cluster_interconnect信息
  2. Android如何实现简单音乐播放器的代码
  3. association 实现MyBatis分步查询与延迟加载
  4. python编写下载器可暂停_python 并发下载器实现方法示例
  5. SAP Spartacus如何使用自定义的Cart Service
  6. linux设置nexus开机自启动_CentOS7配置nexus开机自启动
  7. WeihanLi.Npoi 1.7.0 更新介绍
  8. 【每日一题】4月9日题目精讲 Running Median
  9. JAVA蓝桥杯: 时间转换
  10. LayaAir HttpRequest 网络访问
  11. HTML做一个简单漂亮的宠物网页(纯html代码)
  12. 手把手教你在VM虚拟机上安装windows11
  13. 全自动抠图换背景软件下载_抠图换背景的证件照软件
  14. 大白话讲解,大数据基本术语
  15. 提取windows安装盘install.wim文件修复mstsc
  16. 2021年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂
  17. SQL Sserver 2005 精简版 必须要注意的事情
  18. 从面试官的角度谈谈后端面试
  19. printf中%p的输出应用
  20. 地级市房价月度数据(2009-2021)

热门文章

  1. 结构型模式---适配器模式
  2. 15.看板方法——启动看板变革笔记
  3. 使用Iterator迭代器循环集合
  4. jquery.dragsort.js 实现拖拽过程遇到的问题
  5. python快速编程入门例题-Python快速编程入门,打牢基础必须知道的11个知识点 !...
  6. python入门指南 许半仙txt百度云-《婚前教育》TXT全本 百度云网盘下载 by鱼一三...
  7. python官方推荐的三本书-一个合格的python程序员,应该从这三本书入手
  8. python教学在线观看-python在线学习
  9. 免费学python的网站-免费学习Python编程的3个优秀的网站资源
  10. 一个python程序员需要掌握的知识-python初学者搭建网站需要了解的基础知识