一、文件
1. 打开文件
要打开文件需要使用函数open,返回值为打开的文件对象
# f = open('文件路径',文件模式,encoding='utf8')
f = open("a.txt", "r")
f.close() # 记得操作后关闭文件
f = open("a.txt", "w", encoding="utf8") # 指定编码
f.close()
# 上下文管理器
with open("a.txt", "w", encoding="utf8") as f:
f.write("这是a文件")
with open("a.txt", "r", encoding="utf8") as f:
print(f.read())
2. 文件模式
文件模式 | 作用 |
---|---|
r | 读 |
w | 写 |
a | 追加 |
b | 二进制(需要与其他模式结合) |
+ | 读写模式(需要与其他模式结合) |
f = open("a.txt", "r") # 读
f = open("a.txt", "w") # 写
f = open("a.txt", "a") # 追加
f = open("a.txt", "rb") # 二进制读
f = open("a.txt", "wb") # 二进制写
f = open("a.txt", "w+") # 读写
f = open("a.txt", "r+") # 读写
3. 基本方法
- 写:f.write(string s)
- 读全部:f.read()
可以指定读取长度,如:f.read(4),读4个字节 - 读一行:f.readline()
- 读所有行,每行组成的列表:f.readlines()
- 关闭文件:f.close()
- 移动文件指针:f.seek(移动到的位置)
f = open("a.txt", "r+", encoding="utf8")
# 读文件
text = f.read() # 读全文
print(text)
f.seek(0) # 文件光标定到文件开头
text = f.readline() # 读一行
print(text)
f.seek(0)
text = f.readlines() # 读所有行,并将结果放入列表中返回
print(text)
f.close()
# 写文件
f = open("a.txt", "w+", encoding="utf8")
# 写文件
f.write("asdfasdfasdfa")
f.close()
4. 序列化操作
序列化操作需要导入pickle模块
序列化:pickle.dump(需要序列化的对象,目标文件对象)
读取: pickle.load(读取的文件对象)
import pickle
f = open("a.txt", "wb")
person = {"name":"李明", "age":18}
pickle.dump(person, f)
f.close()
f = open("a.txt", "rb")
pers = pickle.load(f)
print(pers)
f.close()
二、语句
1. 赋值语句
# 普通赋值
a = 10
# 序列解包
x, y = 5, 10
x, y = (5, 10)
x, y = [5, 10]
(x, y) = (5, 10)
(x, y) = [5, 10]
x, y = "ab" # x = 'a', y = 'b'
x, *y = "abc" # x = 'a', y = "bc"
x, y = "abc" # 不正确
# 链式赋值
a = b = c = 1
2. 输出语句
print("abc", end=" ") # 以空格结尾,默认是以换行结尾
print("abc", file=open("a.txt", "w")) # 重定向到文件
print("a", "b", sep="|") # 以|分割
3. 条件语句
# 模板
if 判断条件:
执行代码
elif 判断条件:
执行代码
...
else 判断条件:
执行代码
4. 循环语句
- for循环
# 模板
for item in 可迭代对象:
执行代码
else:
执行代码(当没有被for循环break掉会执行)
(1)range:range函数返回值为一个生成器对象
range(100) # 0 ~ 100
range(1, 100) # 1 ~ 99
range(1, 100) # 1, 3, 5, 7… 99
for i in range(100):
print(i + 1, end=" ")
(2)enumerate:
enumerate用于可迭代、可遍历的数据对象组合为一个索引序列,同时列出下标和数值
s = "abc"
for idx, item in enumerate(s):
print(idx, item)
- while循环
# 模板
while 条件:
执行代码
else:
执行代码(当没有被while循环break掉会执行)