Python-读写文件

1. 基本操作

# 写
fp = open('a.txt', 'w', encoding='utf-8')
fp.write('写入一个字符串')
fp.close()

# 读
fp = open('a.txt', 'r', encoding='utf-8')
content = fp.read()
fp.close()
print(content) # 写入一个字符串

2. open()函数

'''
1. open()函数:打开一个文件,返回文件对象
open(file, mode='w', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
    a. file : 必需,文件的路径(相对或者绝对路径)【常用】
    b. mode : 可选,文件的打开模式,默认为 'r'【常用】
    c. buffering : 设置缓冲
    d. encoding : 编码格式,一般使用utf8【常用】
    e. errors : 报错级别
    f. newline : 区分换行符
    

2. 常见的 mode
    'r'     只读,指针放在开头【默认】
    'r+'    覆盖的读写;文件不存在报错
    'w'     只覆盖的写;当文件不存在时,会创建新文件
    'w+'    覆盖的读写;当文件不存在时,会创建新文件
    'a'     追加的写,不读,如果不存在,会创建新文件
    'a+'    追加的读写,追加,如果不存在,会创建新文件
    'b'     以二进制形式打开
'''

3. 文件对象的常用方法

'''
(1) f.close()
    -- 关闭一个已打开的文件
    -- 关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误
    -- 在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的
            
(2) f.read([size])
    -- 从文件读取指定的字符数,如果未给定或为负则读取所有

(3) f.write(str)
    -- 向文件中写入指定字符串,返回的是写入的字符长度
    -- 调用f.write()方法写文件时,操作系统不会立刻将数据写入磁盘,而是放到内存缓存起来,空闲时在慢慢写入
    -- 只有调用close()方法时,操作系统才会将全部数据写入磁盘
'''

4. 使用 with 的方式打开文件

# 特点:可以自动关闭文件
with open('a.txt', 'w') as fp:
        fp.write('abc')

5. 文件的序列化、反序列化

'''
(1) 序列化(写)
    pickle.dump(obj, file, [,protocol]) 
        -- 将 obj 对象序列化存入 file 中
        -- protocol:序列化使用的协议
            -- 如果该项省略,则默认为 0
            -- 如果为 负值 或 HIGHEST_PROTOCOL,则使用最高的协议版本
                    
(2) 反序列化(读)
    pickle.load(file)
        -- 将 file 中的对象序列化读出
'''

# 序列化写入【以 'wb' 打开】
with open("a.txt", "wb") as fp:
    pickle.dump([1, 2, 5, 9, "66"], fp)

# 序列化读出【以 'rb' 打开】
with open("a.txt", "rb") as fp:
    content = pickle.load(fp)
    print(content)
上一篇:登录小程序


下一篇:Python笔记_输出函数print