python文件读写

本文详细介绍了Python中文件读写的两种主要方式:内置方法和Pandas库。对于内置方法,讲解了open()、read()、write()等函数的使用,以及读写模式如'r'、'w'、'a'的区别。同时,提到了pandas库在处理csv、excel和json文件时的便捷性,如read_csv()和to_csv()等函数。强调了文件操作中指针管理和关闭文件的重要性,并给出了实例演示。
摘要由CSDN通过智能技术生成

python文件读写

1 前言

文件读写在编程中是最基本的操作。python在文件读写方面常见的有两种方式:
内置方法:open(),read(),readline(),readlines(),write(),writelines(),close();
pandas库:read_csv(),to_csv(),read_excel(),to_excel(),read_json(),to_json();

2 内置方法

内置函数读写文件需要三步:① 打开文件② 读/写③ 关闭文件,以下依次进行介绍。

2.1 打开文件:open(filename[, mode[, buffering]])

①filename:文件路径/文件名称;
②mode : 打开文件的模式,这里确定的文件读写类型决定② 读/写步骤使用的函数是读还是写。有如下几种类型:

模式r/w/ar/w/a-+r/w/a-br/w/a-b+说明
“r”:只读“r+”:读写“rb”:二进制只读“rb+”:二进制读写文件不存在则报错,存在则指针指向开头
“w”:只写“w+”:读写“wb”:二进制只写“wb+”:二进制读写文件不存在则新建,存在则先清空后指针指向开头
追加“a”:追加“a+”:追加且可读“ab”:二进制追加“ab+”:二进制追加且可读文件不存在则新建,存在则指针指向末尾

注:a追加模式的本质就是写操作,但不清除文件前面的内容;而w会清除文件原内容;指针在打开文件时指向开头或者末尾,读写操作会改变指针的位置。

③buffering :是否缓存,0表示不会有寄存,1表示访问文件时会寄存,大于 1 的整数表示寄存区的缓冲大小,小于零表示寄存区的缓冲大小为系统默认。这个参数在读写文件中比较少用到。

f = open("测试1.txt","r",encoding='UTF-8')#只读“测试1.txt”,'UTF-8'是文件编码方式,打开文件需要指明编码方式,如果环境默认编码模式与文件编码方式一致,可不加。
f = open("测试1.txt","w",encoding='UTF-8')#只写“测试1.txt”,先清除“测试1.txt”文件内的内容
f = open("测试1.txt","a",encoding='UTF-8')#追加“测试1.txt”,即接着文件内容往下写

“测试1.txt”文件如下,'UTF-8’是文件编码方式,该文件后续会作为测试文件。
在这里插入图片描述

2.2 读文件

①read( ):文件所有内容一次性读完,存放在一个字符串中,用\n表示换行;

f = open("测试1.txt","r",encoding='UTF-8')#打开文件,只读模式,'UTF-8'是文件编码方式,默认是"gkb"
read_txt = f.read()#读入文件,存放文件内容,字符串格式
f.close()

在这里插入图片描述
②readline( ):一行一行地读取数据,每一行都保存为一个字符串;

f = open("测试1.txt","r",encoding='UTF-8')
read_txt = f.readline()
f.close()

在这里插入图片描述
③readlines( ):一次性读取整个文件所有行的数据,将每一行保存为一个字符串,并在字符串的末尾添加上\n代表换行,整体文件保存在一个列表中。

f = open("测试1.txt","r",encoding='UTF-8')
read_txt = f.readlines()
f.close()

在这里插入图片描述

☆ 注意点:使用参数w+,a+也是可以读入文件的,但使用时要注意区别。
w+:

#先看r
f = open("测试1.txt","r",encoding='UTF-8')
read_txt = f.read()
f.close()

读取后read_txt获得完整文件内容。
在这里插入图片描述

#w+
f = open("测试1.txt","w+",encoding='UTF-8')
read_txt1 = f.read()
f.close()

读取后read_txt1为空,且查看原文件时发现被清空。
在这里插入图片描述
在这里插入图片描述
a+:
原文件:
在这里插入图片描述

f = open("测试1.txt","a+",encoding='UTF-8')
read_txt1 = f.read()
f.close()

在这里插入图片描述
字符串为空,再看看原文件内容,内容未被清除。
在这里插入图片描述
内容还在,但是为什么读不出来?原因是a+模式的指针指向文件末尾,从末尾往下读内容当然是空的,如果需要读取前文内容,可以使用seek()方法先将指针移动到文件开头。用open()函数读写文件需要考虑指针指向的问题。
在这里插入图片描述

2.3 写文件

① write( str ),str表示要写入文件的字符串。
1)w:只写
原文件内容:
在这里插入图片描述

#写入内容
f = open("测试1.txt","w",encoding='UTF-8')
f.write("测试写点东西进文件")
f.close()

写入内容后文件:
在这里插入图片描述
“w”原理:先清空文件,再写入内容,使用时注意重要文件存档!!!

2)a:追加
原文件内容:
在这里插入图片描述

#写入内容
f = open("测试1.txt","a",encoding='UTF-8')
f.write("\n测试写点东西进文件")#注意有个换行符号
f.close()

写入内容后文件:
在这里插入图片描述
“a”原理:在文件后面续写。

注意点:用 r+ 写入内容
原文件:
在这里插入图片描述

f = open("测试1.txt","r+",encoding='UTF-8')
f.write("测试写点东西进文件")
f.close()

写入后文件:
在这里插入图片描述
覆盖前面的内容,但当写入内容比原文内容短时,文件清除不干净,容易出错。当然,r本来就是用来读的,写文件还是尽量用w或者a。

②writelines(str_seq):str_seq表示要写入文件的字符串序列。
一行一行写入文件,但是注意要在文段中添加换行符\n。

f = open("测试1.txt","w",encoding='UTF-8')
str1 = ["写入几句话\n","应该写什么呢?\n","我也不知道哎"]
f.writelines(str1)
f.close()

在这里插入图片描述

2.4 关闭文件:close()

关闭文件是非常重要的,否则会一起各种bug。
在这里有一个防止忘记加close()的方法:with open(文件名,模式) as f:f.读写操作()

with open('测试1.txt', 'w') as f:#运行到末尾时自动关闭文件
	f.write("加油啊")

等同于:

f = open("测试1.txt","w")
f.write("加油啊")
f.close()

3 pandas库

pandas库中包含了很多文件的读写函数,如下图所示。
在这里插入图片描述注:图片来源于《利用Python进行数据分析(原书第二版)》,这是一本python数据分析方面非常不错的书籍,推荐给大家。

在数据分析上,使用内置函数读写文件需要对字符串进行进一步的处理,而pandas提供了读取数据表格良好的方法,这里介绍常见的三种类型:csv、excel、json。

3.1 csv格式文件

3.1.1 读文件:read_csv(filepath)

该方法有非常多参数,需要时可查阅【read_csv参数】
几个重要的参数如下:
filepath:文件路径;
nrows : 需要获取的数据行数;
header:一般在没有列名时使用,表示将该行指定为索引行,行中内容为每列的名字;
index_col:将某一列作为索引列。

import pandas as pd
csv = pd.read_csv("测试2.csv",encoding='ANSI')

读取后csv为DataFrame类型。
在这里插入图片描述

import pandas as pd
csv = pd.read_csv("测试2.csv",index_col="学生",nrows=3,encoding='ANSI')#以学生列为索引,读取前三行数据

在这里插入图片描述

3.1.1 读文件:to_csv(filename)【to_csv参数】

filename:文件路径
index:索引是否输出,默认输出;

import pandas as pd
csv = pd.read_csv("测试2.csv",encoding='ANSI')
csv.to_csv("写入测试.csv",encoding='ANSI')
csv.to_csv("写入测试1.csv",index=False,encoding='ANSI')#索引不输出

csv:
在这里插入图片描述写入测试.csv:
在这里插入图片描述
写入测试1.csv:(索引不输出)
在这里插入图片描述

3.2 excel文件

3.2.1 读文件:read_excel(filepath, sheet_name)

【read_excel参数】

3.2.2 写文件:to_excel(filepath, sheet_name,index=False)

【to_excel参数】

3.3 JSON格式文件

JSON格式,可以用来表示带有结构性,层级关系的数据,有点像字典的形式,它在网络传输数据时经常被使用;keys()方法,得到数据中所有的键。

3.3.1 读文件:read_json()【read_json参数】
3.3.2 写文件:read_json()【read_json参数】

另外,在 json 中也有两个方法:
json.load()方法读取文件内容;
json.dump()方法生成JSON文件。

记录学习过程,欢迎指正

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值