Python入门(八):文件处理

文件处理

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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值