Python 文件

本文详细介绍了文件的打开和关闭,包括不同模式的使用,如读写模式、追加模式。重点讲解了CSV文件的读写,以及如何使用csv模块进行数据操作。此外,还探讨了序列化和反序列化,特别是json和pickle模块在对象存储和传输中的应用。
摘要由CSDN通过智能技术生成

文件的打开和关闭

打开

通过open打开

open(file,mode='r',encoding = None)

file:用来指定打开的文件(文件的路径)
mode:打开文件的模式,默认是 ‘r’,表示只读方式打开
encoding:打开文件时的编码方式,windows中默认是gbk。
open 函数会有一个返回值:打开的文件对象

关闭

file.close()

路径

\文件位置,为转移字符,推荐使用/

文件的打开模式

  • mode:打开文件的模式,默认是 ‘r’,表示只读方式打开
  • 读:rb r 写:wb w a
  • r :只读模式,打开文件后,只能读取,不能写入,否则报错。文件不存在的话,同样会报错。
    1.read()读取所有内容
    2.readline()每次读取一行
    3.readlines()读取所有的行保存在列表中
    4.readable()判断是否可读
  • w :写入模式,打开文件后,只能写入,不能读取,否则报错。如果文件存在,会覆盖文件,如果文件不存在,会创建文件。
  • b :以二进制形式打开文件。rb 以二进制读取;wb 以二进制写入。
  • r+ :可读可写模式。w+ :是可写可读。(尽量不用这两种模式)
  • a :追加模式。会在文本的最后追加内容。文件不存在会创建文件。
  • t :文本形式打开。

csv文件的读写

CSV文件,Comma-Separated Values(逗号分隔值或字符分隔值),其文件以纯文本的形式存储表格数据。
可以把它理解为一个表格,只不过这个表格是以纯文本的形式显示的,单元格与单元格之间默认使用逗号进行分隔;每行数据之间使用换行进行分隔。

csv文件的写入

  • file = open('demo.csv','w',encoding = 'utf8',newline='') newline 表示识别换行
  • writerow 是列表类型
  • 可以以此写入一行,也可以一次写入多行 用 writerows
  • csvr.reader阅读器

将数据写入内存

首先需要引入
1.直接引入 import os ,用的时候os.path.join() 调用过程需要写完整
2.from 引入 from io import StringIo 不需要写完整的调用过程
缓冲

  • BytesIO 的参数必须是二进制
  • 用BytesIO 是编码解码要用同一种

序列化和反序列化

write 只能写入字符串和二进制,所以想要将对象(列表、字典、元组等写入到文件里就需要序列化
序列化:用于对象的存储和传输
反序列化:恢复对象
Python 中提供了 jsonpickle 两个模块用来实现数据的序列化和反序列化。

  • 将数据转换成为字符串(repr/str) 再写入文件,使用 json 模块。
  • 将数据转换成为二进制 再写入文件,使用 pickle 模块。
    代码演示

json

  • json 可以认为是字符串
  • 用双引号代表字符串,最外层用单引号
  • dumps的作用是将数据转换成为字符串
  • 在这里插入图片描述
    names = '["Tom", "Toy"]'
    json 里将数据序列化有两个方法:
    dumps :将数据转换为 json 字符串,不会将数据保存到文件里。
    dump :将数据转换成 json 字符串的同时,写入到指定文件。
    在这里插入图片描述

pickle

pickle 模块可将数据转化为 二进制 形式。
序列化:
dumps:将python里的数据转换成为二进制
dump:将python里的数据转换成为二进制,同时保存到文件
反序列化:
loads:将二进制加载成为python里的数据
load:读取文件里的二进制内容,并将文件的内容转换成为python里的数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值