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的设计模式编程入门指南
Apr 02 Python
python实现下载文件的三种方法
Feb 09 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
Dec 14 Python
Python Flask基础教程示例代码
Feb 07 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
python的pip安装以及使用教程
Sep 18 Python
python获取引用对象的个数方式
Dec 20 Python
运行Python编写的程序方法实例
Oct 21 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
使用pycharm运行flask应用程序的详细教程
Jun 07 Python
Python实战之OpenCV实现猫脸检测
Jun 26 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
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
实例解析Array和String方法
2016/12/14 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
python创建和删除目录的方法
2015/04/29 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Python画图高斯分布的示例
2019/07/10 Python
用Python配平化学方程式的方法
2019/07/20 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
金讯Java笔试题目
2013/06/18 面试题
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python