python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python文件常用操作

Python中文件常用操作的完整代码(零基础就能上手)

作者:梦想三三

文件是存储在磁盘上的数据集合,通过文件名进行标识,Python程序需要先建立与磁盘文件的通道才能读取或写入数据,本文将和大家详细介绍了Python中文件的一些常用操作,希望对大家有所帮助

一、文件的基本概念

1. 什么是文件

文件是存储在磁盘上的数据集合,通过文件名进行标识。Python程序需要先建立与磁盘文件的通道,才能读取或写入数据。

2. 字符型文件 vs 二进制文件

字符型文是纯文本内容,无格式信息,常见的.txt、.csv、.py等格式文件都是字符型文件,能用记事本正常打开

二进制文件为存储原始字节,含格式信息 .jpg、.png、.mp4、.docx 等格式文件都是二进制文件,记事本打开乱码

注意:CSV虽然是纯文本格式,但可用Excel表格化显示,本质上仍属于字符型文件。

二、操作文件

关于文件的操作通常包含三个步骤,及打开文件、操作文件和关闭文件。

file.open()  # 打开文件
file.method()  # 操作文件
file.close()  # 关闭文件

这里注意不关闭文件会长期占内存条,当代码读取的文档比较多时,会逐步消耗内存,所以当文件不必使用时,要即使关闭释放内存空间

1.打开文件

在python中通常使用open()函数来打开一个文件,

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

注意这里的打开文件是与文件建立通道,open()是Python操作文件的入口,它在内存(程序运行环境)和磁盘(文件存储位置)之间建立通道,获取操作文件的权限。

参数mode:文件打开的模式,常见打开模式如下

参数buffering:设置缓冲区大小,分块读取数据不一口气读取,防止内存溢出风险。

参数encoding:表示需要打开文件的编码方式,在文本模式下有效。常用两种,GBK(适用于纯英文文本) UTF-8(支持中文等多种语言)

参数file:需要打开的文件路径,数据类型为字符串类型。

注意Windows路径中的反斜杠\会被Python识别为转义字符(如\n换行),需要特殊处理。

三种正确写法:

# 方法1:使用原始字符串(推荐)
f = open(r'F:\学习资料\a.txt', 'r')
# 方法2:双反斜杠转义
f = open('F:\\学习资料\\a.txt', 'r')
# 方法3:正斜杠路径(跨平台兼容)
f = open('F:/学习资料/a.txt', 'r')

'r'只读模式 示例代码,使用open函数打开 “ D:\课\第七章\a.txt”文件

注意:这里\a在字符串里为转义字符,会使得程序在读取文件时找不到文件路径引发报错

可以看到我们正确输出时,输入结果并不是文件里面的内容,open()函数之打开文件并不会读取文件内部的字符内容,在代码中open函数的打开文件是指和文件建立通道并创建一个文件对象,这个对象与文件进行了关联,因此输出的结果是文件对象的属性信息。

'w'覆盖写模式 示例代码(批量创建文件)公司日常需要处理大量文件可以用Python代码自动创建

'a'追加写模式 示例代码

f=open(r"D:\课\第七章\a.txt",'a',encoding='utf-8')
f.write('提高办公效率')
f.close()

'b'二进制模式

读取二进制文件(如图片、视频)需使用'rb'模式,不能与encoding参数同时使用,二进制模式将文件从磁盘读取到内存,便于网络传输或进一步处理。

注意:二进制文件也会以字符形式返回

f=open('wordcloud.png','rb')
print(f.read())#输出16进制内容
f.close()

2.读取文件

read()方法:文件对象.read(size=-1)

size:从文件中读取size个字符的内容,默认读取全文

通过open()方法读取的数据默认返回字符串类型内容

readlines方法

读取所有行内容,以列表形式返回,每行内容为列表中的一个元素,保留换行符\n,自然语言处理中需要处理换行符等特殊符号

示例:

for循环遍历文件

直接对文件对象进行for循环,print后会换行,一行行读取,节省内存资源

示例:

小文件使用read(),大文件使用readlines()或for循环遍历,自然语言处理优先使用readlines()以保留特殊符号

3.写入文件

write() 把字符串写入文件,并返回写入的内容

writelines():把字符串列表写入文件,且不添加换行符,返回None

实例

4.绝对路径和相对路径

在使用open()函数读取文件时,第一个参数用于表明文件的路径和名称,其中文件路径的表达方式有两种,分别为绝对路径和相对路径

绝对路径: 从磁盘根目录开始到目标文件的完整路径,如E:\书代码\第7章\a.txt

相对路径: 相对于当前文件位置的路径,从一个目录为起点到另一个目录的路径

路径表示技巧:

同级目录直接写文件名即可

下级目录用./目录名/文件名

上级目录用../文件名,多级上级用../../文件名

5. CSV文件处理

CSV(逗号分隔值)是一种纯文本文件格式,其特点如下:

  1. 采用英文逗号作为字段分隔符
  2. 可直接用记事本或Excel打开查看
  3. 文件扩展名必须为.csv
  4. 在Excel中会自动按逗号分列显示
  5. 存储空间占用小
  6. 特别适合存储大规模数据集

Excel乱码处理:需将Excel默认编码改为UTF-8

写入方法:与普通文本文件操作相同,使用open()函数

实战

例题:读取十二时辰文件

项目任务

任务1:用户输入时间后,系统自动分析输出对应时间的时辰名、属相、别名和描述。

任务2:在任务1的基础之上,实现用户可以循环输入信息,并加入对输入时间的格式处理操作,当输入时间的格式不正确时,程序将输出“输入时间格式错误”。输入时间格式不正确的情况有小时数和分钟数超出范围,或者传递的不是数值。

项目实现步骤

根据项目任务要求,首先需要读取“中国十二时辰.csv”文件内容。接着为了识别每一行中各个元素,需要将元素信息存入一个列表,方便根据用户输入的信息来读取文件信息。

输出结果

例题:整理HTML网页内容

项目任务

任务1:将中国的所有城市名称写入“城市大全.csv”文件,城市名称之间使用逗号分隔。

任务2:将每个城市名自动写入Excel表格的第1行作为表头,以便于后期继续进行深入操作。

结果展示

到此这篇关于Python中文件常用操作的完整代码(零基础就能上手)的文章就介绍到这了,更多相关Python文件常用操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文