day08学习 Python文件函数、CSV文件读写

本文介绍Python中文件的基本操作,包括seek和tell函数的使用,以及如何通过Python的CSV模块进行CSV文件的读写。文章还展示了如何计算并添加额外的数据列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件函数

  • seek

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

    参数1:移动的偏移量,默认为0

    参数20 - 将指针移动到文件开头

    1 - (默认)- 指针指向当前位置

    2 - 指针移动到文件尾部

    f1 = open('界面.txt', 'r', encoding='utf-8')
    print(f1.read())
    # 将指针再移动到文件开头
    f1.seek(0, 0)
    

    界面.txt

    欢迎进入系统!
    **************************
    **    请选择对应功能:    **
    **       1. 登录        **
    **       2. 注册        **
    **       3. 退出系统     **
    **************************
    
    • 一个英文符号对应一个偏移量,一个汉字和一个中文符号对应3个偏移量
    • Python中有序序列(容器)下标从0开始;
    • Python操作文件时的偏移量从1开始
    f1.seek(2, 0)       # UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa2 in position 0: invalid start byte
    f1.seek(6, 0)   # 将指针移动到文件开头,再增加6个偏移量
    print(f1.read())
    
  • tell

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

    f1.tell()
    print(f1.tell())        # 156+(7+8+11)*2=208 windows定义结束是\r\n
    f1.close()
    

    换行:
    linux:\n
    windows: \r\n
    mac: \r
    \r 不计入长度,\t长度为1

    转义字符有特殊含义时,长度为1;代表本身时,长度为2

CSV文件读写

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

import csv - 使用CSV内置模块进行csv文件的读写操作

  1. 返回一个文件对象

    windows或者Linus操作系统会自动创建\n,写文件必须加newline=''

    newline = '' —> 将换行\n转为空

    f1 = open('./店铺信息.csv', 'w', encoding='utf-8', newline='')
    print(f1)
    
  2. 创建写方法对象

    mywrite = csv.writer(f1)        # 借助Python已经实现的CSV的模块实现想要实行的功能
    
  3. 写入列明

    单行写入:writerow()

    col = ['店铺名', '人均', '口味', '环境', '服务']
    mywrite.writerow(col)
    
  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:
 # print(i)
 for j in i:
     print('{:<8}'.format(j), end='')
 print()
f2.close()

使用excel打开CSV文件(使用wps可直接打开)

  1. 数据 —> 获取数据 —> 自文件 —> 从文本/CSV —> 在文件管理器中找CSV文件 —> 文件原始格式(UTF-8) —> 加载 —> 转换为区域
  2. (encoding=‘utf-8-sig’ 打开的表格不会乱码) 小众

CSV文件操作-酒店平均分

import csv
# 必须

# 读数据
f1 = open('./北京高档酒店价格分析.csv', 'r', encoding='utf-8')
# 创建读文件的方法
read_data = csv.reader(f1)
data = list(read_data)
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 info in data[1:]:
    # print(info)
    score = round((float(info[3]) + float(info[4]) + float(info[5]) + float(info[6])) / 4, 2)
    result = f'{info[0]}的平均分为:{score}'
    # print(result)
    # 将平均分重新写入文件
    info.append(score)
    mywrite.writerow(info)

f2.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值