【python学习笔记8】Python文件及文件的读写

  • 1 字符串的编码与解码
  • 2 文本格式化
  • 2.1 %
  • 2.2 .format()
  • 3 文件读写
  • 3.1 txt——写
  • 3.2 txt——读
  • 3.3 二进制文件——写
  • 3.4 二进制文件——读
  • 3.5 上下文管理器(写完自动关闭)
  • 3.6 追加写入’a’
  • 4 三种读取文本的方式
  • 4.1 上面的方法f.read()
  • 4.2 resdline和readlines
  • 4.3 使用迭代读取文件
  • 5 结构化文件读写
  • 5.1 csv文件
  • 5.2 json文件
  • 5.3 使用Pickle序列化


1 字符串的编码与解码

运行的程序都是在内存中,这就需要把文件读到内存中,处理完之后存储回硬盘。

编码:s.encode()

解码:bs.decode()

python3.4 文件读写 python对文件的读写_python

python3.4 文件读写 python对文件的读写_python_02

  • 默认采用的是utf-8

2 文本格式化

2.1 %

python3.4 文件读写 python对文件的读写_python3.4 文件读写_03

2.2 .format()

python3.4 文件读写 python对文件的读写_二进制文件_04

3 文件读写

File = open(filename,mode)
mode:读写模式rw, 文本文件 t ,二进制文件 b,默认为文本文件,追加a
File = close()

3.1 txt——写

python3.4 文件读写 python对文件的读写_json_05


python3.4 文件读写 python对文件的读写_python3.4 文件读写_06

3.2 txt——读

python3.4 文件读写 python对文件的读写_python3.4 文件读写_07

3.3 二进制文件——写

python3.4 文件读写 python对文件的读写_python_08


python3.4 文件读写 python对文件的读写_python3.4 文件读写_09

3.4 二进制文件——读

python3.4 文件读写 python对文件的读写_二进制文件_10

3.5 上下文管理器(写完自动关闭)

python3.4 文件读写 python对文件的读写_二进制文件_11


python3.4 文件读写 python对文件的读写_序列化_12

3.6 追加写入’a’

python3.4 文件读写 python对文件的读写_python_13


python3.4 文件读写 python对文件的读写_二进制文件_14

4 三种读取文本的方式

4.1 上面的方法f.read()

python3.4 文件读写 python对文件的读写_json_15


(↑缺少close())

4.2 resdline和readlines

  • resdline一行一行读,相当于迭代器,记录位置,最后是空的字符串

    (↑缺少close())
  • readlines 返回列表

4.3 使用迭代读取文件

python3.4 文件读写 python对文件的读写_json_16

5 结构化文件读写

5.1 csv文件

带分隔符的文件,常用‘,’也有’\t’和‘|
有标准库import csv

  • 一次性写入多行.writerows
  • 一次性写入一行.writerow,a追加的形式
  • 读取,默认添加空行的解决办法

注:CSV文件用panda读取方便

5.2 json文件

Json是当前非常流行的数据交换格式,很多程序(web)之间的数据交换,就是使用json格式。
import json
jsonfile = json.dumps(a)
a = json.loads(jsonfile)

  • 编码和解码
  • 并不是所有的数据都可以用json编码,比如下图的now,所以需要使用pickle序列化

5.3 使用Pickle序列化

存储数据结构到文件中称为序列化
import pickle
now1 = datatime.datetime.now()
pikfile = pickle.dumps(now1)
now2 = pickle.loads(pikfile)

  • 编码和解码——now
  • 编码和解码——列表

把now、列表序列化(存储在一个文件当中)
pickle是python独有的序列化方式,纯python的环境下,保存文件很方便。