Python文件常见操作实例分析【读写、遍历】


Posted in Python onDecember 10, 2018

本文实例讲述了Python文件常见操作。分享给大家供大家参考,具体如下:

1.文件是什么?

文件是存储在外部介质上的数据或信息集合,程序中源程序、数据中保存的数据、图像中的像素数据等等;

文件是有序的数据序列;

2.编码:

信息从一种形式转换为另一种形式的过程;ascII码、Unicode、utf-8等等;

二进制文件ascII码:照片、音乐、视频、计算机程序。。。

3.文件的基本操作

1)打开文件获取文件对象

建立磁盘上的文件与源程序中的对象相关联,程序上叫打开文件,一旦文件被打开,文件的内容就可以通过相关的文件对象获得;

python中处理文件首先要创建一个文件对象与磁盘上的文件相关联,

open(),通常open方法可以立即分配一个文件对象变量:创建一个文件对象

open(磁盘文件名,打开方式)

eg:打开一个名为1.dat的文件:

>>>infile = open("1.dat","r")    #打开一个文件对象放在infile中
>>>infile = open("1.mp3","rb")

接下来就可以用文件指针来读取磁盘上1.bat文件的内容了

Python文件常见操作实例分析【读写、遍历】

2)读取文件--文件操作:就是对open创建的文件对象进行操作

读取:即将文件数据读入计算机内存;

写入:即从计算机内存向文件写入数据;

定位:即定位文件读写位置;

其他:追加、计算等;

关闭文件:完成文件操作后需要关闭文件就是:切断文件与程序的联系,将文件缓冲区的数据写入到磁盘,并释放文件缓冲区。

注意:当写入信息到文件对象时,只有在文件关闭后磁盘上的文件才会显示变化。

Python文件常见操作实例分析【读写、遍历】

例子:读整个文件全部内容

def main():
  fname = input("enter filename:") #首先提示用户输入文件名
  infile = open(fname,"r")#打开文件并赋值给文件对象变量infile
  data = infile.read()#文件的全部内容被读入在一个长字符串中并存储在data变量中
  print(data)#输出data在屏幕上
main()

例子:返回文件中5行数据

#连续调用readline()可以的到文件中连续行,readline()返回值都以换行符结束
#输出文件前5行:
def main():
  infile=open("file_name","r")
  for i in range(5):
    line = infile.readline()
    print(line[:1])
#利用剪切操作去掉每行读入的分隔符,如果输出语句末尾有换行符,
#输出操作就会自动跳到下一行,这样输出的文件内容各行之间就会多出一个空行
main()

3)向文件对象写进数据,open方式必须是w or wb

Python文件常见操作实例分析【读写、遍历】

>>> outfile = open("outfile.txt","w")
#打开一个文件并进行文件写入操作,需要一个文件接受数据,如果给出的文件名不存在则会创建一个新文件,如果给出的文件名存在,python将原文件删除并创建一个新的空文件
>>> outfile.writelines(["hello","","liyue"])
>>> outfile.close()
>>> infile = open("outfile.txt","r")
>>> infile.read()
'hello liyue'

文件遍历:是最常见的文件处理方法,例如copy文件、根据数据文件定义行走路径、将文件由一种编码转换成另外一种编码;

通用代码框架:(遍历文件模板:)

file = open(filename,"r")
for each_line in file.readlines():#当文件很大会占用很大内存
              #处理一行文件内容
file.close()

简化代码框架:

file = open (filename,"r")
for each_line in file:
           #处理一行文件内容
file.close()

举例:文件拷贝

def main():
  #用户输入文件名
  f1 = input("输入一个源文件:").strip()
  f2 = input("输入一个源文件:").strip()
  #打开文件
  infile = open(f1,"r")
  outfile = open(f2,"w")
  #copy数据
  countLines = countChars = 0
  for line in infile:
    countLines +=1
    countChars +=len(line)
    outfile.write(line)
  print(countLines,"linesand",countChars,"char copied")
  infile.close()
  outfile.close()
main()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用python实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
对于Python的Django框架部署的一些建议
Apr 09 Python
在Python中使用全局日志时需要注意的问题
May 06 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
简单了解python代码优化小技巧
Jul 08 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
python版百度语音识别功能
Jul 09 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
Django Celery异步任务队列的实现
Jul 24 Python
python列表的逆序遍历实现
Apr 20 Python
500行python代码实现飞机大战
Apr 24 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 #Python
django使用LDAP验证的方法示例
Dec 10 #Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 #Python
python文件拆分与重组实例
Dec 10 #Python
Python对excel文档的操作方法详解
Dec 10 #Python
使用python进行拆分大文件的方法
Dec 10 #Python
python使用udp实现聊天器功能
Dec 10 #Python
You might like
解析isset与is_null的区别
2013/08/09 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
Redis构建分布式锁
2017/03/28 PHP
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
2018/07/09 jQuery
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
如何一键升级Python所有包
2020/11/05 Python
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
初中生期末评语大全
2014/04/24 职场文书
低碳环保标语
2014/06/12 职场文书
公司踏青活动方案
2014/08/16 职场文书
五年级小学生评语
2014/12/26 职场文书
营销计划书范文
2015/01/17 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
Redis数据结构之链表与字典的使用
2021/05/11 Redis
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android