文件操作介绍
在实际操作中,通常采集本地数据来进行数据分析,那么就需要学习Python去对本地文档进行读取与写入等操作。比如:txt文件,json文件,csv文件,excel文件等。
1-1 本地文件操作步骤
• 打开文件
• 操作文件
• 关闭文件
1-2 Python操作txt文件
代码:
open(file, mode=‘r’,encoding=None) --> 打开文件
• file --> 文件路径
• mode --> 操作文件模式
• r --> 只读模式
• w --> 写入
• a --> 追加
• encoding --> 指定文件编码, 当文件中文乱码时,则指定编码为utf-8解决。
例如:读取Students.txt中的数据
f = open('Students.txt','r')
f.readlines()
f.close()
注意:
• r模式,当文件不存在时则报错
• f.read() --> 读取全部
• f.readline() -->逐行读取
• f.readlines() -->读取全部,且为列表
• 读取不可逆
例如:创建test01.txt文件,并且写入内容
f = open('demo.txt','w')
f.write("I Love Python")
f.close()
注意:
• w模式,当文件不存在时创建文件
• 再次写入为覆盖
• 关闭之后需重新打开
还有另外一种方式进行读写文件:with open() ,简单来说,其属于一种上下文管理器。with关键字用于Python的上下文管理器机制。为了防止诸如open这一类文件打开方法在操作过程出现异常或错误,或者最后忘了执行close方法,文件非正常关闭等可能导致文件泄露、破坏的问题 。Python提供了with这个上下文管理器机制,保证文件会被正常关闭。在它的管理下,不需要再写close语句。其余操作都同open()一致。
其代码使用如下:
with open('Students.txt','r') as f:
print(f.readlines())
1-3 Python操作json文件
JSON是一种使用广泛的轻量数据格式. Python标准库中的json模块提供了JSON数据的处理功能。 由于JSON与python中的字典格式非常像。所以python中的json模块也相当于是用来使json与字典做转换。但是要注意的是,json中的数据必须使用双引号包裹。
json格式:’{“key”:“value”}’
例如:将{“age”:22}写入data.json文件中
import json
data = {"age":22}
with open('data.json','w') as f:
json.dump(data,f) #python对象 转为json对象
例如:读取data.json文件中的数据
with open("data.json","r") as f:
print(f.read())
例如:读取data.json文件中的数据并且获取到22这个值。
with open('data.json','r') as f:
json_data = json.load(f)
print(json_data['age'])
1-4 Python操作csv文件
CSV即Comma Separate Values,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。经常用来作为不同程序之间的数据交互的格式。
例如:创建demo01.csv文件,并写入数据。
import csv # 内置模块
with open("demo01.csv",'w',encoding='utf-8',newline='') as datademo:
demowriter = csv.writer(datademo)
demowriter.writerow(["name","age","sex"])
demowriter.writerow(['Mei','18','女'])
demowriter.writerow(['Jonah','22','男'])
另外还可以多行写入:
with open("demo01.csv",'w',encoding='utf-8',newline='') as datademo:
demowriter = csv.writer(datademo)
demowriter.writerows(["name","age","sex"],['Mei','18','女'],['Jonah','22','男'])
例如:读取demo02.csv文件数据。
with open("demo02.csv",'r',encoding='utf-8') as datademo:
data = csv.reader(datademo)
# print(next(datareader))#逐行读取,迭代器
for i in data:
print(i)
1-5 Python操作excel文件
在Python中,有很多第三方模块用来操作excel,比如说:xlwt,xlrd,openpyxl等。
注意
• openpyxl只支持2010版本以上的xlsx文件
例如:使用openpyxl将数据写入demo03.xlsx
思路
• 创建工作簿
• 创建工作表
• 写入数据
• 保存
代码:
from openpyxl import Workbook
wb=Workbook()#创建工作簿
ws=wb.active#激活工作表
data=(["name","age","sex"],['Mei','18','女'],['Jonah','22','男'])
for i in data:
ws.append(i)
wb.save("demo03.xlsx")
例如:使用openpyxl读取demo03.xlsx数据
from openpyxl import load_workbook
wb=load_workbook("demo03.xlsx")
ws=wb.active
for row in ws.rows:
for i in row:
print(i.value)