编辑
2026-04-01
undefined
00

目录

pathlib模块
文件打开模式
读文件
read(size)
读n个字符(字节)
readline()
继续读下一行
readlines()
读大文件
读二进制文件
将文件指针移动到文件末尾
获取文件指针移动的字节数,即文件大小
将文件指针移动到文件开头
立即刷到硬盘writelines(s) 向文件写入一个元素为字符串的列表,如果需要换行则要自己加入每行的换行符。
获取当前光标位置在a模式下,调用write在文件中写入内容时,永远只能将内容写到尾部,不会写到光标的位置。
上下文管理Python提供了with语句用于简化资源释放的操作。with语句建立在上下文管理器(实现enter和exit方法)的基础上。 with open("new.txt", 'r', encoding='utf-8') as f1, open("new2.txt", 'w', encoding='utf-8') as f2: pass上下文管理可以自动实现关闭文件,进行文件操作时,推荐使用。
计算文件MD5from hashlib import md5, sha256
更新MD5对象的数据
获得16进制形式的MD5哈希摘要

读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

pathlib模块

用模块pathlib来处理文件,是一种更加简单的文件读写方法。 from pathlib import Path

path = Path("pi_million_digits.txt") contents = path.read_text(encoding="utf-8")

lines = contents.splitlines() pi_string = "" for line in lines: pi_string += line.lstrip()

birthday = input("Enter your birthday, in the form mmddyy: ") if birthday in pi_string: print("Your birthday appears in the first million digits of pi!") else: print("Your birthday does not appear in the first million digits of pi.")

写入文件用write_text()方法。

Path类提供了很多很有用的方法。如果指定的文件或文件夹存在,exists()方法返回True,否则返回False。

文件打开模式

  • 只读:rt、rb

  • 存在,读

  • 不存在,报错

  • t 是文本类型,b 是二进制类型

  • 覆盖写:wt、wb

  • 存在,清空再写

  • 不存在,创建再写

  • 创建写:xt、xb

  • 存在,报错

  • 不存在,创建再写

  • 追加模式:at、ab

  • 存在,尾部追加

  • 不存在,创建再写

读文件

read(size)

如果size未给定或为负则一次性读取文件所有内容,以字符串的形式返回结果: with open("new.txt", 'r', encoding='utf-8') as f: f.read()

读n个字符(字节)

with open("new.txt", 'r', encoding='utf-8') as f: f.read(1) # 读1个字符

readline()

只读取文件一行的内容,以字符串的形式返回结果: with open("new.txt", 'r', encoding='utf-8') as f: f.readline() # 读第一行 f.readline() # 继续读下一行

readlines()

读取文件所有行,并且以列表的形式返回结果,一般配合for使用 with open("new.txt", 'r', encoding='utf-8') as f: for line in f.readlines(): line.strip()  # 去掉换行符n

读大文件

with open("new.txt", 'r', encoding='utf-8') as f: for line in f: print(line.strip())

读二进制文件

from io import SEEK_END, SEEK_SET

with open("1.jpg", "rb") as f:

将文件指针移动到文件末尾

f.seek(0, SEEK_END)

获取文件指针移动的字节数,即文件大小

print(f.tell())

将文件指针移动到文件开头

f.seek(0, SEEK_SET)

data = f.read(1024) while data: print(data, end="") data = f.read(1024)</pre>

写文件with open("new.txt", 'w', encoding='utf-8') as f: f.write('李小龙') # 写在缓冲区,系统会将缓冲区的内容刷到硬盘 f.flush() # 立即刷到硬盘writelines(s) 向文件写入一个元素为字符串的列表,如果需要换行则要自己加入每行的换行符。

光标位置with open("new.txt", 'r+', encoding='utf-8') as f: f.seek(3) # 移动到指定的字节位置,一个汉字3个字节 f.write('你好') print(f.tell()) # 获取当前光标位置在a模式下,调用write在文件中写入内容时,永远只能将内容写到尾部,不会写到光标的位置。

上下文管理Python提供了with语句用于简化资源释放的操作。with语句建立在上下文管理器(实现__enter__和__exit__方法)的基础上。 with open("new.txt", 'r', encoding='utf-8') as f1, open("new2.txt", 'w', encoding='utf-8') as f2: pass上下文管理可以自动实现关闭文件,进行文件操作时,推荐使用。

计算文件MD5from hashlib import md5, sha256

hasher = md5() hasher2 = sha256()

with open("1.jpg", "rb") as f: data = f.read(1024) while data:

更新MD5对象的数据

hasher.update(data) hasher2.update(data) data = f.read(1024)

获得16进制形式的MD5哈希摘要

print(hasher.hexdigest()) print(hasher2.hexdigest())

本文作者:a

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!