python基础之永久存储

发布于:2022-11-07 ⋅ 阅读:(294) ⋅ 点赞:(0)

文件操作

文件打开

  • 语法:file object = open(file_name [, access_mode][, buffering])
    • file_name:要访问的文件路径及名称的字符串值。
    • access_mode:决定了打开文件的模式:只读,写入,追加等。默认文件访问模式为只读®。
    • buffering:
    • 值取0,不会有寄存。
    • 值取1,访问文件时会寄存行。
    • 值取大于1的整数,表明了这就是的寄存区的缓冲大小。
    • 值取负值,寄存区的缓冲大小则为系统默认。
  • f = open('E:\\test1.txt', 'w')
  • 表:python文件打开模式,参考自https://www.runoob.com/python/python-files-io.html
    t 文本模式 (默认)。
    x 写模式,新建一个文件,如果该文件已存在则会报错。
    b 二进制模式。
    + 打开一个文件进行更新(可读可写)。
    U 通用换行模式(不推荐)。
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
    w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
  • 直接print(f),会输出一个文件对象:
    • <_io.TextIOWrapper name='D:\\test1.txt' mode='r' encoding='cp936'>

 文件对象方法

属性 描述
file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
  • list(f)能将文件直接转化为列表

  • 读取文件对象

for each_line in f:
 print(each_line)

  • 注意:

文件写入后,关闭文件才能保存写入内容
f.write('i love ivcc')
f.close()

pathlib

from pathlib import Path

cwd()获取当前工作目录

还可以直接指定一个路经

'/'可以直接进行拼接

is_file判断一个路径是否为文件

exists()判断路径是否存在

name属性去获取路径的最后一个部分

stem用于获取文件的文件名

suffix获取文件后缀

parent获取父级目录

parents获取逻辑祖先路径构成的不可变序列

parts属性将路径的各个组件拆分成元祖

stat()查询文件或者文件夹的信息

mkdir()创建文件,如果已经存在就会报错,设置参数exit_ok=True就会忽略报错信息,若父级目录不存在就会报错,但是再设置一个parents=True参数就会创建父级目录,不报错

rename()修改文件夹或文件的名称,附带修改路径的功能

replace()替换指定的文件或文件夹,附带修改路径的功能

rmdir()删除文件夹,unlink()删除文件

glob()功能强大的查找功能

 with语句和上下文管理器

打开操作关闭文件

pickle模块

“Pickling”是将Python对象层次结构转换为二进制字节流的过程,
“unpickling”是反向操作
作用:

  • 简化程序,将大量的数据打包(如: 城市字典)成二进制文件,需要使用时调用即可

 

 

 实例:

import pickle

def dabao():
    my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    pickle_file = open('my_list.pkl', 'wb')
    pickle.dump(my_list, pickle_file)
    pickle_file.close()

def diaoyong():
    pickle_file = open('my_list.pkl', 'rb')
    my_list2 = pickle.load(pickle_file)
    print(my_list2)


if __name__ == '__main__':
    #dabao()
    diaoyong()

本文含有隐藏内容,请 开通VIP 后查看