第8章 文件操作
【本章导读】
文件是指为了重复使用或长期使用的目的,以文本或二进制形式存放于外部存储器(硬盘、U盘、光盘等)中的数据保存形式,文件是信息交换的重要途径,也是利用程序解决实际问题的重要媒介。
程序对数据读取和处理都是在内存中进行的,程序设计结束或关闭后,内存中的这些数据也会随之消失。计算机文件可以将数据长期存储下来反复使用,不会因程序结束或断电而消失。
程序可以随时读取文件里的全部或部分数据,数据的处理结果写入文件后,可以长期保存,供其他程序的应用随时读取和处理。而且,文件的使用,还可以消除计算机内存对数据体积的限制,可以处理远超过内存大小的数据量。
本章将详细讲授利用程序创建、打开与关闭文件的方法,通过案例讲授文本文件、CSV格式文件和JSON格式文件的读写操作,以及利用numpy和pandas库读取文件中的数据并对数据分进分析与统计的方法。
【本章要点】
●文件的打开与关闭
f = open(file, mode='r', encoding=None)
# 或
with open(file, mode='r', encoding=None) as f:
●文件对象的遍历
f = open(file, mode='r', encoding=None)
for line in f:
print(line)
# 或
with open(file, mode='r', encoding=None) as f:
for line in f:
print(line)
●文件的读写操作
read(size) 无参数或参数为-1时,读取全部文件内容
readline(size) 无参数或参数为-1时,读取并返回文件对象中的一行数据
readlines(hint) 无参数时,读取文件全部数据,返回一个列表,列表中每个元素是文件对象中的一行数据
seek(offset,whence) 改变当前文件操作指针的位置
tell() 返回文件指针当前的位置
●CSV与JSON格式文件的读写与转换
●利用numpy读取和分析文件中的数据
numpy.genfromtxt(fname, dtype=<class 'float'>, comments='#',
delimiter=None, skip_header=0,skip_footer=0,
missing_values=None, filling_values=None,
usecols=None, autostrip=False,
max_rows=None, encoding='bytes'…)
# 或
numpy.loadtxt(fname, dtype=<class 'float'>, comments='#',
delimiter=None, converters=None,skiprows=0,
usecols=None, unpack=False, ndmin=0,
encoding='bytes',max_rows=None)
●利用pandas读取和分析文件中的数据
read_csv()/to_csv()
read_json()/to_json()
read_excel()/to_excel()
read_html()/to_html()
read_pickle()/to_pickle()
read_sql()/to_sql()
