7.21学习 文件操作(上)


文本文件操作核心函数:

open()打开文件
close()关闭打开的文件

read..()读取文件内容
write..()将内容写入到文件中

helloworld!简单操作:打开一个文件,将指定的内容写入到文件中

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 函数

  • file:要打开的文件路径
  • mode=”r”:打开文件的方式
  • r:表示以只读的形式打开文件
  • w:表示以只写的方式打开文件,每次打开文件时,会清空文件原来的内容
  • x:表示创建文件并以只写的方式打开文件
  • a:表示以追加内容的方式打开文件,每次写入数据时会在原来的数据后面追加
  • b:表示以二进制的方式打开文件
  • t:表示以文本文件的方式打开文件,默认方式
  • +:以更新的方式打开文件(可读可写)
  • 常规:”tw”/”tr”/”ta”/”bw”/”br”/”ba”

read读取文件内容

类似这样的函数,查看帮助文档时,切记,如果直接使用help(read)会出现未定义的错误,我们需要在打开的文件上查看这个函数的使用帮助:
help(f.read)

文本(二进制)文件的读取:

read()直接根据默认的长度读取一段数据【65535个字符】
read(size)每次读取size个字符的数据


readline()每次读取一行数据,读取到的数据为空字符串时,表示文件中的数据读取结束

readlines()读取数据,以行为单位,将读取到的数据保存在一个列表list中

文本文件的写入:

write(str):将一个字符串,写到文件中

writelines(strlist):将一个字符串列表,写入到文件中

open(file, "w"):以w的模式打开的文件,每次打开的时候,都会清空原来的文件数据
open(file, "a"):以a的模式打开的文件,每次打开的时候,会在原来的文件数据后追加

二进制文件的写入操作

  • 字符串->二进制数据
  • S = “字符串”
  • B = bytes(S, encoding=”utf-8”)
  • B二进制数据
  • 二进制数据->字符串
  • B = b’/x12/xd3/x1a/xef’
  • S = B.decode()
  • S = “字符串”

打开文件:

f=open(file, “bw”)
f.write(B)
f.flush()
f.close()
f = open(file, “br”)
B = f.read()
S = B.decode()
f.close()

重点来了:

向文件中保存程序中的对象(列表、字典等等)

从文件中读取对象数据(读取到的数据,就直接是列表、字典等等)

文件操作的流程

  • 打开文件
  •  操作文件内容
    
  • 关闭文件

with语句,简化文件操作,封装了打开文件和关闭文件的操作(自动化了)

f = open(file)
f.write/read()
f.close()
with open(file) as f:
f.write/read()

在真实项目开发时,文件的操作(文件的IO操作)通常使用with语句来实施。
IO--> Input/Output 输入/输出 输入流/输出流 流(数据流)
输入Input:将文件中的数据,输入到程序中
输出Output:将程序中的数据,输出到文件中
IO:核心~程序

二进制文件——序列化

要使用序列化功能,需要引入pickle
import pickle
序列化写入对象数据:pickle.dump(obj, file)
序列化写入对象数据:pickle.load(obj, file)

你可能感兴趣的:(7.21学习 文件操作(上))