python 文件操作

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)
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值