文件
一、文件操作
file = open("测试01.txt", mode="r+", encoding="utf-8") # 打开文件 # 返回一个文件对象 encoding 确定文件的字符编码 file.write("福州") # 字符编码 # 将内容写入文件 # file.writelines(["可迭代\n", "对象里面\n", "所有元素\n", "必须为字符串"]) # # context = """这里也可以 # 直接换行哟~ # """ # file.write(context) file.flush() # 刷新缓冲区 # 立即将内存的内容写入到硬盘 # 保存文件内容 光标的操作:
print(file.tell()) # 查看光标所在位置,以字节来计算 file.seek(-2, 0) # 移动光标 # 超过文件字节总长度就报错,不能使用负数 # file.write("广") file.close() # 关闭文件,自动保存
文件打开方式
|
参数值 |
打开方式 |
文件存在 |
文件不存在 |
光标位置 |
|
r(默认) |
只读 |
正常 |
报错 |
0 |
|
w |
只写 |
覆盖 |
新建 |
0 |
|
x |
只写 |
报错 |
新建 |
0 |
|
a |
只写 |
正常 |
新建 |
末尾 |
|
附加值 |
附加权限 |
|
+ |
添加读写权限 |
|
b |
二进制形式打开 |
|
t(默认) |
文本形式打开 |
文件读取
|
方法 |
作用 |
示例 |
返回值 |
|
read([int]) |
从光标所在位置开始读取,可以指定读取字符数,超过最大字符数读取所有字符 |
file.read(12) |
str |
|
readline([int]) |
从光标所在位置开始读取,可以指定读取字符数,超过当前行剩余字符数则读取当前行剩余字符 |
file.readlines(33) |
str |
|
readlines([int]) |
从光标所在位置开始读取,可以指定读取字符数,超过当前行剩余字符数则读取下一行所有字符,若依旧超过则继续读取下一行 |
file.readlines(33) |
list |
file = open("test02.txt", mode="r+", encoding="utf-8") file.write("这里是字节") file.seek(0) # 以字节移动 # context = file.read(30) # 读取光标后所有内容 # # 参数为 读取的字符数,超过最大字符数,读取所有的 # context = file.readline(3) # 读取光标后,当前行的所有内容 # # 参数为 读取的字符数,超过当前最大字符数,读取当前行光标所有的 # context = file.readlines() # 读取光标后,每一行的所有内容 # # 返回值是一个 列表 # # 每一个元素是某一行的内容 context = file.readlines(6) # 只要读到某一行,即读取当前行所有内容 print(context) file.close()
文件自动管理
with open("test02.txt", mode="r+", encoding="utf-8") as file: context = file.readlines() print(context) print(file.closed) # 查看文件的状态 # 会自动关闭文件 print(file.closed)
二、IO流
import io sio = io.StringIO() # 创建一个 StringIo对象 # IO的写入和读取 都和文件 sio.writelines("我是字符流") # 也是有光标 print(sio.tell()) # 在 StringIO里面, 光标移动以字符来移动 context = sio.getvalue() # 获取流中的所有内容 print(context) sio.close()
import io bio = io.BytesIO() # 创建BytesIO # bio.write(b"anbsd") bio.write("我是byte流".encode()) print(bio.getvalue()) bio.close()
三、常用工具
import os
|
方法 |
作用 |
|
system(str) |
将字符串当做系统命名执行 |
|
path.join(*args) |
将多个字符串拼接成路径 |
|
mkdir(str) |
创建文件夹 |
|
rename(old,new) |
将 old 文件夹重命名为 new |
import os os.system("ls") os.system("pwd") #将字符串当做系统命令执行 path_str = os.path.join("/home", "likun", "python") #将多个参数拼接成一个路径 print(path_str)
import shutil
|
方法 |
作用 |
|
move(src, dst) |
将src路径的文件或者文件夹移动到 dst路径下 |
|
copytree(src, dst) |
将src路径的文件夹复制到 dst路径下 |
|
rmtree(src) |
将src路径的文件夹删除 |
import shutil import os os.mkdir("聆听") shutil.move() #移动 shutil.copytree()#复制 shutil.rmtree()#删除

浙公网安备 33010602011771号