Python 文件读写

Search for a command to run...

No comments yet. Be the first to comment.
一、有序对和笛卡尔积 1、有序对(序偶):由两个元素 x 和 y 按照确定顺序排列组成的二元组,记作⟨x, y⟩ 2、笛卡尔积:以 A 中元素为第一元、B 中元素为第二元,构造所有有序对⟨x,y⟩; 由全部这类有序对构成的集合,称为 A 与 B 的笛卡尔积,记作 AXB 例题: 已知 A={a,b}, B={0,1,2},求笛卡尔积 A × B、B × A A × B(前元取自 A,后元取自 B

1、集合的概念 N元子集:含有n个元素的子集叫做N元子集. 例题:已知集合 A={1,2,3},按元素个数对 A 的所有子集分类 0元子集:∅ 1元子集:{1}, {2}, {3} 2 元子集:{1,2}, {1,3}, {2,3} 3 元子集:{1,2,3} 幂集:设 A 为集合,由 A 的全部子集构成的集合称为 A 的幂集,记作P(A). 例题:A={1,2,3},求A的幂集 答案:P

一、基本元件 元件 符号 说明 例子 个体词 a, b, c... 代表具体对象(常元) a:小明 个体变元 x, y, z... 代表任意对象 x 表示论域中任一元素 谓词 P(x), Q(x,y)... 表示性质或关系 P(x):x是学生; L(x,y):x喜欢y 量词 ∀, ∃ 修饰个体范围 ∀x(所有x); ∃x(存在x) 连接词 ¬, ∧, ∨, →, ↔ 命

本质是"逻辑推导游戏",给定几个前提,用固定规则一步步推出结论。套路固定,背下规则就能拿分。 一、核心推理规则公式: 假言推理(MP)A→B, A ⇒ B肯定前件→肯定后件拒取式(MT)A→B, ¬B ⇒ ¬A否定后件→否定前件假言三段论(HS)A→B, B→C ⇒ A→C蕴含传递析取三段论(DS)A∨B, ¬A ⇒ B否定一边得另一边附加律A ⇒ A∨B或上一个随便什么化简律A∧B ⇒ A (或

定义:S是一个联结词集合,若任一个命题公式都可以由s中的联结词表示出来命题公式与之等价,则称S是一个联结词完备集。 也就是说一个连接词集合,能表达出所有真值函数,称为完备集 以下是完备集: S1={¬,∧,∨} —— 否定、合取、析取 S2={¬,∧,∨,→} —— 否定、合取、析取、蕴涵 S3={¬,∧,∨,→,↔} —— 否定、合取、析取、蕴涵、等价 S4={¬,∧} —— 否定、

文件操作的入口是 open() 函数,打开模式决定操作类型:
'r':只读模式(默认),文件不存在则报错
'w':写入模式,覆盖原有内容,文件不存在则创建
'a':追加模式,在文件末尾添加内容,文件不存在则创建
'r+':读写模式,可读取也可写入(覆盖原有内容)
'a+':追加+读取模式,追加后可读取文件内容
'b':二进制模式(如 'rb' / 'wb'),用于图片、视频等二进制文件
需手动调用 close(),容易遗漏导致资源泄露:
f = open("example.txt", "r", encoding="utf-8")
content = f.read()
print(content)
f.close()
with 语句自动关闭文件,安全简洁:
with open("example.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
read(size):读取指定字节数(size 省略则读取全部)
readline():读取一行内容(含换行符 \n)
readlines():读取所有行,返回列表
for line in f::逐行读取(最省内存),line 为自定义变量
write(str):写入字符串(需手动加 \n)
writelines(list):写入字符串列表(需手动加 \n)
seek(offset[, whence]):移动文件指针(whence=0 从头,1 当前,2 末尾)
tell():返回当前文件指针位置(字节数)
flush():立即将缓冲区内容写入文件
# 不推荐:大文件易内存溢出
with open("large_file.txt", "r", encoding="utf-8") as f:
all_content = f.read()
# 推荐:逐行读取(内存友好)
with open("large_file.txt", "r", encoding="utf-8") as f:
for line in f: #注意:line只是变量,迭代器默认以行返回
print(line.strip()) # 处理单行内容
line只是变量,迭代器默认以行返回
Python 文件迭代器默认以 \n 为分隔符,每次迭代调用 readline() 方法。
| 函数/方法 | 参数说明 | 功能描述 |
|---|---|---|
open(file, mode='r', encoding=None) |
file :文件路径; | |
| mode :打开模式; | ||
| encoding :编码 | 打开文件,返回文件对象 | |
file.read(size=-1) |
size :读取字节数(默认 -1 读取全部) | 读取文件内容,返回字符串 |
file.readline(size=-1) |
size :指定读取该行字节数 | 读取一行内容(含 \n) |
file.readlines(hint=-1) |
hint :预计读取行数(默认 -1 读取全部) | 读取所有行,返回列表 |
file.write(str) |
str :需写入的字符串 | 写入字符串,返回字符数 |
file.writelines(lines) |
lines :字符串列表/可迭代对象 | 批量写入字符串 |
file.seek(offset, whence=0) |
offset :偏移量; | |
| whence :起始位置 | 移动文件指针 | |
file.tell() |
无参数 | 返回指针位置(字节数) |
file.close() |
无参数 | 关闭文件,释放资源 |
file.flush() |
无参数 | 刷新缓冲区,立即写入 |
file.closed |
无参数(属性) | 判断文件是否关闭(布尔值) |
for line in file |
line :自定义变量 | 逐行读取(大文件最优) |
open() 需指定 encoding='utf-8',避免中文乱码;
优先使用 with 语句,无需手动关闭文件;
大文件读取必须用 for line in f:,杜绝 read() / readlines();
写入文件需手动加 \n,否则内容无换行。