logo

Python 文件

王哲峰 / 2022-07-25


目录

内置 open 函数会创建一个 Python 文件对象, 可以作为计算机上的一个文件链接. 在调用 open 之后, 你可以通过调用返回文件对象的方法来读写相关外部文件.

文件对象不是数字、序列、对应. 相反, 文件对象只是常见文件处理任务输出模块. 多数文件方法都与执行外部文件相关的文件对象的输入和输出有关, 但其他文件方法可查找文件中的新位置、刷新输出缓存等.

常见文件运算:

operation explain
output = open(r"C:\spam", “w”) create output file(“w”:write)
input = open(“data”, “r”)
input = open(“data”)
aString = input.read()
aString = input.read(N)
aString = input.readline()
aList = input.readlines()
output.write(aString)
output.writelines(aList)
output.close()
output.flush()
anyFile.seek(N)
for line in open(“data”): use line
open(“f.txt”, encoding = “latin-1”)
open(“f.txt”, “rb”)

打开文件

为了打开一个文件, 程序会调用内置 open 函数, 第一个参数是外部名, 接着是处理模式, 第三个是可选参数, 用来控制输出缓存, 传入 0 意味着输出无缓存(写入方法调用时立即传给外部文件):

open("name.file", "mode", 0)

模式类型如下:

使用文件

一旦存在一个文件对象, 就可以调用其他方法来读写相关的外部文件. 在任何情况下, Python 程序中的文本文件都采用字符串的形式, 读取文件时会返回字符串形式的文本, 文本作为字符串传递给 write 方法.

文件工具

Python 3.X 中的文本和二进制文件

在文件中存储并解析 Python 对象

用 pickle 存储 Python 原生对象

文件中打包二进制数据的存储与解析

文件上下文管理

文件上下文管理比文件自身多了一个异常处理功能, 它允许把文件处理代码包装到一个逻辑层中, 以确保在退出后可以自动关闭文件, 而不是依赖于垃圾收集上的自动关闭:


    with open(r"C:\misc\data.txt") as myfile:
        for line in myfile:
            ...use line here...

try/finally 语句可以提供类似的功能, 但是需要一些额外代码的成本:

myfile = open(r"C:\misc\data.txt")
try:
    for line in myfile:
        ..use line here...
finally:
    myfile.close()

其他工具

dir(filename)
help(filename)