Python学习---day8

seek和tell

seek

seek(参数1, 参数2):能够将指针移动制定的偏移量

  • 参数1:移动的偏移量
  • 参数2: :0-将指针移动到文件开头、1(默认):将指针向当前位置、2:指针移动到文件尾部
f1 = open('界面.txt', 'r', encoding='utf-8')
print(f1.read())

将指针再移动到文件开头

f1.seek(0, 0)

一个英文符号对应一个偏移量,一个汉字和一个中文符号对应3个偏移量
python中有序序列(容器)下标从0开始:
python操作文件时的偏移量从1开始
f1.seek(6, 0)—>将指针移动到文件开头,再增加6个偏移量

f1.seek(21, 0)
print(f1.read())

tell

tell():查看当前指针的位置

print(f1.tell())


换行:
linux:\n;
windows:\r\n;
mac:\r

csv文件的读写

csv文件的本质是文本文件,只是以表格的形式展示数据

import csv

使用csv内置模块进行csv的读写操作

1. 返回一个文件对象

Windows或者linux操作系统,写csv文件必须加上newline=‘’
newline=‘’ —>将换行转为空

f1 = open('./店铺信息.csv', 'w', encoding='utf-8', newline='')
print(f1)

2.创建写方法对象

mywrite = csv.writer(f1)

3.写入列名

单行写入:writerow()

col = ['店铺名', '人均', '口味', '环境', '服务']
mywrite.writerow(col)
print(mywrite)

4.写入对应信息

多行写入:writerows()

datas = [
    ['吼堂老火锅', 126, 4.5, 4.7, 4.6],
    ['小龙坎', 100, 4.8, 4.8, 4.7],
    ['巴蜀大宅门', 70, 4.8, 4.6, 4.8]
]
mywrite.writerows(datas)
f1.close()

csv文件读操作

f2 = open('./店铺信息.csv', 'r', encoding='utf-8')
# 创建读方法
myreader = csv.reader(f2)
for i in myreader:
    for j in i:
        print('{:<10}'.format(j), end='')
    print()
f2.close()

练习:

计算酒店平均评分并且添加到csv文件

import csv

f1 = open('./北京高档酒店价格分析.csv', 'r', encoding='utf-8')

myreader = csv.reader(f1)
data = list(myreader)
f1.close()

# 创建新文件
f2 = open('./北京酒店信息.csv', 'w', encoding='utf-8', newline='')
# 写方法
mywrite = csv.writer(f2)
data1 = [i for i in data[0]]
data1.append('平均评分')
mywrite.writerow(data1)
for i in list(data)[1:]:
    average = round((float(i[3]) + float(i[4]) + float(i[5]) + float(i[6]))/4, 2)
    result = f'{i[0]}的平均分为:{average}'
    i.append(average)
    mywrite.writerow(i)
f2.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值