python文件操作
1.文件处理过程:
- 第一步:打开文件:open()
- 第二步: 读取或者写入文件:read()、readline()、readlines()、write()
- 第三步:对读取到的数据处理
- 第四步:关闭文件:close()
2.打开文件
- open()函数打开文件,会返回一个文件对象
- 格式:file_object = open(filename[, access_mode = “r” , buffering = -1] )
- 解释:file_object为打开的文件对象;filename是文件要打开的路径(绝对路径或者相对路径)的字符串;[]里面的是可选参数,第一个可选参数是打开模式,默认为”r“,通常有‘r’、‘w’、‘a’几种模式,代表‘只读’、‘只写’、‘追加‘,最后一个可选参数是待打开文件的缓存模式。
3.数据的读取方法
- read([size]):读取文件所有内容,返回字符串类型,size表示读取的数据量,以byte为单位,可省略。
- readline([size]):按行读取,返回字符串类型,给大小size则读出一行的一部分。
- readlines([size]):读取所有行到列表里面[line1,line2…],参数size表示读取的总长。
4.读取csv文件
-
导入csv模块 import csv
import csv f = open("white_wine.csv","r") reader = csv.reader(f) data = [] for row in reader: data.append(row) for i in range(5): print(data[i]) f.close()
5.写文件和关闭文件
- write():向文件中写入指定字符串,打开文件的函数的第一个可选参数设为写’w‘。
- writeline():可将一个列表中的所有数据一次性写入文件
- 需要换行可用 \t 和间隔符
- 写入csv文件,writer方法调用writerow函数将列表中每个元素都写入文件
- 关闭文件 close()
例子:
## 葡萄酒探索
import csv
f = open("data//white_wine.csv", "r")
reader = csv.reader(f)
content = []
for row in reader:
content.append(row)
f.close()
for i in range(5):
print(content[i])
quality_list = []
for row in content[1:]:
quality_list.append(int(row[-1]))
quality_count = set(quality_list)
print("白葡萄酒共有%d种等级,分别是:%r"%(len(quality_count),quality_count))
## 实战演练 3 : 按白葡萄酒等级将数据集划分为7个子集,统计在每个品质的样本量
content_dict = {}
for row in content[1:]:
quality = int(row[-1])
if quality not in content_dict.keys():
content_dict[quality] = [row]
else:
content_dict[quality].append(row)
for key in content_dict:
print(key,":",len(content_dict[key]))
## 实战演练4: 统计在每个品质的样本量
number_tuple = []
for key, value in content_dict.items():
number_tuple.append((key, len(value)))
print (number_tuple)
## 实战演练5: 求每个数据集中fixed acidity的均值
mean_list = []
for key, value in content_dict.items():
sum= 0
for row in value:
sum += float(row[0]) #fixed acidity是第一列数据
mean_list.append((key, sum/len(value)))
for item in mean_list:
print(item[0],":",item[1])
# print("\n")
# print(mean_list)