Python文件的相关操作(文本文件、二进制文件和csv文件)

一、文本文件

        文本文件存储的是常规字符串指的是记事本或其他文本编辑器能正常显示、编辑并且人类能够直接阅读和理解的字符串),由若干文本行组成,通常每行以换行符'\n'结尾。

文本文件的写入

1、打开文件

通过内置函数open()可以创建或打开文件对象,可以指定覆盖模式(文件存在时)、编码和缓存大小。

2、写入数据

打开文件后,可以使用其实例方法write()/writelines(),写入字符串到文本文件。 

f.write(s)       #把字符串s写入到文件f
f.writelines(lines) #依次把列表lines中的各字符串写入到文件f
f.flush()        #把缓冲的数据更新到文件中

3、关闭文件

写入文件完成后,应该使用close方法关闭流,以释放资源,并把缓冲的数据更新到文件中。

f.close()   #关闭文件

二、二进制文件

        二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通字处理软件直接进行编辑,通常也无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。

二进制文件的写入

1、打开二进制文件

通过内置函数open(),指定打开模式'b',可以创建或打开二进制文件对象。可以指定覆盖模式(文件存在时)和缓存大小。

2、写入数据

打开文件后,可以使用其实例方法write,写入字节数据(bytesbytearray)到二进制文件。

3、关闭二进制文件

使用close方法关闭流,以释放资源。通常采用with语句,以保证系统自动关闭打开的流。

三、csv文件

        CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。

csv文件的写入可根据下面的例子和注释理解一下。

四、举例

将以下信息作为表头:

学号,姓名,性别,班级,书名,作者,出版社

分别用文本文件和csv文件的形式。将文件中写入三行信息,并读取文件,打印信息!

写入文本文件

# 打开文件,以写入模式写入信息
with open('info.txt', 'w') as file:
    file.write('学号\t姓名\t性别\t班级\t书名\t作者\t出版社\n') # 写入表头
    file.write('123\t小明\t男\t1班\t《Python入门》\t张三\t清华大学出版社\n') # 写入第一行信息
    file.write('456\t小红\t女\t2班\t《数据结构与算法》\t李四\t人民邮电出版社\n') # 写入第二行信息
    file.write('789\t小李\t男\t3班\t《编译原理》\t王五\t机械工业出版社\n') # 写入第三行信息
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

读取文本文件

# 打开文件,以读取模式读取信息
with open('info.txt', 'r') as file:
    # 读取表头
    header = file.readline().strip().split('\t')
    # 逐行读取并打印信息
    for line in file:
        info = line.strip().split('\t')
        for i in range(len(header)):
            print(header[i], ':', info[i])
        print() # 每个信息之间加一个空行
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行截图

 写入csv文件

import csv

# 打开文件,以写入模式写入信息
with open('info.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['学号', '姓名', '性别', '班级', '书名', '作者', '出版社']) # 写入表头
    writer.writerow(['123', '小明', '男', '1班', '《Python入门》', '张三', '清华大学出版社']) # 写入第一行信息
    writer.writerow(['456', '小红', '女', '2班', '《数据结构与算法》', '李四', '人民邮电出版社']) # 写入第二行信息
    writer.writerow(['789', '小李', '男', '3班', '《编译原理》', '王五', '机械工业出版社']) # 写入第三行信息
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

读取csv文件

import csv

# 打开文件,以读取模式读取信息
with open('info.csv', 'r') as file:
    reader = csv.reader(file)
    header = next(reader) # 读取表头
    for line in reader:
        for i in range(len(header)):
            print(header[i], ':', line[i])
        print() # 每个信息之间加一个空行
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行截图

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值