文章目录

  • 文件处理
    • 文件类型
      • 文本文件
      • 二进制文件
    • 文件操作
      • 文件打开
      • 文件读写
      • 文件关闭

文件处理

Python之所以在近几年十分红火,其中一个最重要的原因就是它在数据分析和科学计算上所展现的独特魅力。而要分析挖掘数据,就意味着我们是对数据文件进行操作。因此,下面我们学习下文件类型和数据维度,以及如何操作数据文件。

文件类型

  • 文件是存储在存储在辅助存储器上的一组存储序列,可以包含任何数据内容。
  • 概念上,文件是数据的集合和抽象
  • 文件包括文本文件二进制文件两种类型。

文本文件

  • 文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容易于展示和阅读。
  • 由于文本文件存在编码,所以可以看作是存储在磁盘上的长字符串
  • 适用于例如:.txt文件、.py文件等

二进制文件

  • 直接由比特0和比特1组成没有统一的字符编码,文件内部数据的组织结构和文件用途有关
  • 由于没有统一的字符编码,只能作为字节流,而不能看作字符串。
  • 信息按照非字符但有特定格式形成的文件,适用于例如:.png文件,.avi文件等

这里我用文本方式和二进制方式两种方式打开同一个文件,观察其结果差异:

文件操作

文件操作的流程一般为:打开—读写—关闭,详细解释如下:
操作系统中的文件默认处于存储状态。当对某一文件进行操作时,应首先打开该文件,使文件处于占用状态,此时另一个进程不能操作该文件;然后对文件进行相关操作;最后关闭文件,使文件恢复为存储状态。

文件打开

Python 通过 open() 函数打开文件,并返回一个操作这个文件的变量,语法形式如下:

<变量名> = open(<文件路径及文件名>,<打开模式>)

文件路径:由于Windows系统是Dos系统发展而来,所以通过复制文件的路径打开该文件在程序中行不通,需要加以适当转变(关于这方面的知识可自行谷歌)。引用上面的例子,列出常用的三种方式

  • C:/Users/SHOHOKU/Desktop/April.txt
  • f = open("C:\\Users/SHOHOKU/Desktop\April.txt","rb") #在根目录用转义符\后其后跟\或/其意义一样
  • f = open(r"C:\Users\SHOHOKU\Desktop\April.txt","rb") #原始字符串操作符(r/R):用于一些不希望转义字符起作用的地方

打开模式:即以何种方法来打开该文件,常用参数如下所示:

  • r:只读模式,默认值,若文件不存在则返回FileNotFoundError
  • w:覆盖写模式,文件存在则完全覆盖,不存在则创建
  • x:创建写模式,文件不存在则创建,存在则返回FileExistError
  • a:追加写模式,文件存在则在原文件最后追加内容,不存在则创建
  • b:二进制文件模式
  • t:文本文件模式,默认值
  • +与r/w/x/a一同使用,在原功能基础上增加同时读写功能

文件读写

根据打开方式不同,文件读写也会根据文本文件或二进制打开方式有所不同。
在这我们将文件读写分为文件读取和文件写入两部分加以介绍:
文件读取

  • f.read(size=-1):读取整个内容。参数可选,若给出则读取前size长度
  • f.readline(size=-1):读取一行内容。参数可选,若给出则读取改行前size长度
  • f.readlines(hint=-1):读取所有行内容。参数可选,若给出则读取前hint行
  • f.seek(offset):改变当前文件操作指针的位置,offset的值:0为开头,1为当前位置,2为结尾

我们现在读取陈寅恪先生的《忆故居》,文件名为Cyq.txt,读取内容如下

当我们再次读取时,我们发现没有任何文本,这是因为我们的读取指针发生了变动,即指针已移动到文件结尾,后面没有内容,故返回为空:

因此如果我们可以通过调整指针位置来重新读取文本:

在这里我们介绍下文件的全文本操作和逐行操作,如下图所示:




文件写入

  • f.write(s):向文件写入一个字符串或字节流
  • f.writelines(lines)将一个元素为字符串的列表整体写入文件

我们现在将《无问西东》里那著名的十六个字写入桌面的文件,文件名为April.txt,写入方式如下

f = open("c:/Users/SHOHOKU/Desktop/April.txt","w+")
f.write('''爱你所爱
行你所行
听从你心
无问西东''')
f.close()
f = open("c:/Users/SHOHOKU/Desktop/April_1.txt","w+")
f.writelines(['爱你所爱\n','行你所行\n','听从你心\n','无问西东'])
f.close()

结果如图所示:


文件关闭

当我们对某一文件执行完操作后,应关闭文件使其转化为存储形态,方便其他程序对该文件进行操作,语法形式如下:

<文件名>.close()

Python入门(八):文件处理相关推荐

  1. python入门(八) 书体检测和识别

    文章目录 实现思路: python环境 开发工具 传统形态学侵蚀,膨胀,张开,闭合 侵蚀 膨胀 张开 闭合 canny边缘检测算法 检测书法文字案例 实现步骤 本人工作中,用到了ai相关技术,但是ja ...

  2. Python入门(13)——文件和异常

    在开发中经常要对数据进行持久化操作,实现数据持久化最直接的方式就是将数据保存到文件中.在 Python 中实现文件的读写操作非常简单,通过 Python 内置的函数,就可以获得操作文件的对象,从而对文 ...

  3. python入门之文件的读写

    1.python文件读写的方式 文件读写就是一种常见的IO操作.python封装了操作系统的底层接口,直接提供了文件读写相关的操作方法:文件读写不需要额外引入第三方库: 一个文件读写的步骤: 1.从硬 ...

  4. Python中的文件处理

    读文件 步骤:1.打开文件:2.读取文件内容:3.关闭文件 打开文件 格式为:open(path, flags[, encoding][,errors] ): path: 要打开文件的路径, flag ...

  5. python文件路径过滤器_SUMO入门(八) - 从Python引入TraCI接口

    SUMO入门(八) - 从Python引入TraCI接口 TraCI TraCI/Interfacing TraCI from Python TraCI命令分为13个部分,它们对应于各个模块: gui ...

  6. python上机实验报告读取文件_Python程序设计实验报告:实验八 文件

    安徽工程大学 Python程序设计 实验报告 班级 物流192姓名陶俊 学号3190505235 成绩 日期 2020.6.3 指导老师修宇 实验八 文件 [实验目的] 掌握读写文本文件或 CSV 文 ...

  7. python入门教程2word-入门干货:Python操作Word文件经验分享

    原标题:入门干货:Python操作Word文件经验分享 导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通 ...

  8. python入门(5)使用文件编辑器编写代码并保存执行

    python入门(5)使用文件编辑器编写代码并保存执行 两款文本编辑器: 一个是Sublime Text,免费使用,但是不付费会弹出提示框: 一个是Notepad++,免费使用,有中文界面: 请注意, ...

  9. 《Python入门到精通》文件操作

    「作者主页」:士别三日wyx   此文章已录入专栏<Python入门到精通>   2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习 文件操作 1. 打开文件 1.1 ...

  10. python入门(三)--文件处理

    python入门–文件处理 with open as用法: 原来打开文件直接使用open方法,如果文件不存在的话,会抛出IOError异常,正常打开文件后还需要将文件关闭,如果抛出异常后,文件关闭就不 ...

最新文章

  1. 随机森林 java_机器学习weka,java api调用随机森林及保存模型
  2. PHP生成CSV之内部换行
  3. 设计师学习HTML/CSS之路-13
  4. Windows Server 2003 IIS 使用 Excel.Application
  5. 视觉特征--ORB系列
  6. python的结构_Python结构的选择,python,之
  7. 清华大学人工智能研究院开源“天授”强化学习平台
  8. Puppet基于Master/Agent模式实现LNMP平台部署
  9. poj3050 穷竭搜索 挑战程序设计竞赛
  10. ORACLE小错误和小技巧
  11. 那些消失了的黑客杂志 | 深度
  12. 2017年6月14日中午 java.io.IOException: Premature EOF
  13. NOIP2002 产生数
  14. 神舟笔记本电脑win10系统不能调节亮度问题
  15. 亚马逊云科技物联网产业创新峰会与你相聚蓉城
  16. 如何使用Adobe Acrobat对PDF文档进行电子签名
  17. 计算机网络实验 ppt,计算机网络实验实验四跨交换机实现vlan.ppt
  18. Task3:第三回:布局格式定方圆
  19. 苹果Mac系统设置任何来源安装第三方软件
  20. Rocket的启动流程

热门文章

  1. 仿头条新闻资讯dz模板 Discuz新闻资讯商业版GBK模板源码
  2. android语言设置,android9.0默认系统语言改为中文
  3. 因为没有网关,我的服务器被 DDoS 了
  4. Python学习:引用计数法
  5. Darknet函数分析
  6. miui升级系统无服务器,细数MIUI 11的BUG,还没升级的朋友,先来了解一下
  7. HR8833 替换DRV8833 H桥电机驱动IC
  8. 医院能耗监控平台研究与应用
  9. VS2010 编译 SpiderMonkey 1.8.5 静态库版本
  10. Deepin编译安装 mongoc++ 驱动程序