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多线程用法实例详解
Jan 15 Python
详解Python3操作Mongodb简明易懂教程
May 25 Python
Python Flask-web表单使用详解
Nov 18 Python
django认证系统实现自定义权限管理的方法
Jul 16 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
便捷提取python导入包的属性方法
Oct 15 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
深入了解Python iter() 方法的用法
Jul 11 Python
新手学python应该下哪个版本
Jun 11 Python
Python  word实现读取及导出代码解析
Jul 09 Python
python线程里哪种模块比较适合
Aug 02 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 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
php设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
jquery ajax post提交数据乱码
2013/11/05 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
js实现录音上传功能
2019/11/22 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
详解Python 数据库的Connection、Cursor两大对象
2018/06/25 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
python openpyxl使用方法详解
2019/07/18 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
python实现mean-shift聚类算法
2020/06/10 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
大学生实习思想汇报
2014/01/12 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
安全生产大检查方案
2014/05/07 职场文书
python四种出行路线规划的实现
2021/06/23 Python
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android