跳至主要內容

file文件操作

刘春龙原创...大约 3 分钟Python教程文档

一个完整的程序一般都包括数据的存储和读取;我们在前面写的程序数据都没有进行实际的存储,因此 python 解释器执行完数据就消失了。实际开发中,我们经常需要从外部存储介质(硬盘、光盘、U 盘等)读取数据,或者将程序产生的数据存储到文件中,实现“持久化”保存。

Python 标准库中,如下是文件操作相关的模块,我们会陆续给大家介绍。

名称说明
io 模块文件流的输入和输出操作 input output
os 模块基本操作系统功能,包括文件操作
glob 模块查找符合特定规则的文件路径名
fnmatch 模块使用模式来匹配文件路径名
fileinput 模块处理多个输入文件
filecmp 模块用于文件的比较
csv 模块用于 csv 文件处理
pickle 和 cPickle用于序列化和反序列化
xml 包用于 XML 数据处理
bz2、gzip、zipfile、zlib、tarfile用于处理压缩和解压缩文件(分别对应不同的算法)

创建文件对象 open()

open()函数用于创建文件对象,基本语法格式如下:open(文件名[,打开方式])

如果只是文件名,代表在当前目录下的文件。文件名可以录入全路径,比如:D:\a\b.txt

为了减少\的输入,可以使用原始字符串:r“d:\b.txt”示例如下:f = open(r"d:\b.txt","w")

打开方式有如下几种:

模式描述
r读 read 模式
w写 write 模式。如果文件不存在则创建;如果文件存在,则重写新内容;
a追加 append 模式。如果文件不存在则创建;如果文件存在,则在文件末尾追加内容
b二进制 binary 模式(可与其他模式组合使用)
+读、写模式(可与其他模式组合使用)

文本文件的写入

文本文件的写入一般就是三个步骤:创建文件对象、写入数据、关闭文件对象

f = open(r"a.txt", "a")
s = "\n7777\n88"
f.write(s)
f.close()

或者使用 with 上下文管理

with open(r"a.txt", "a") as f:
    s = "\n7777\n88"
    f.write(s)

中文乱码问题解决

with open(r"a.txt", "a") as f:
    s = "你好"
    f.write(s)

以上直接把中文写入文件会乱码,解决办法如下

with open(r"a.txt", "a", encoding="utf-8") as f:
    s = "你好"
    f.write(s)

文本文件的读取

文件的读取一般使用如下三个方法:

  • read([size])

    从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则读取整个文件。 读取到文件末尾,会返回空字符串。

  • readline()

    读取一行内容作为结果返回。读取到文件末尾,会返回空字符串

  • readlines()

    文本文件中,每一行作为一个字符串存入列表中,返回该列表

读取一个文件前 4 个字符
with open(r"a.txt", "r") as f:
    print(f.read(4))
文件较小,一次将文件内容读入到程序中
with open(r"a.txt", "r") as f:
    print(f.read())
按行读取一个文件
with open(r"a.txt", "r") as f:
    while True:
        fragment = f.readline()
        if not fragment:
            break
        else:
            print(fragment, end="")
上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7