文件操作
f = open("文件路径", mode = "模式", encoding = "编码类型")
模式 r w a / rb wb ab / r+ w+ a+ / r+b w+b a+b
操作文件: 1. 打开文件 2. 操作文件 3. 关闭文件
文件路径:
-
绝对路径
- 从磁盘的根目录寻找.
- 网络的路径
-
相对路径: 相对于当前你这个程序所在的文件夹(用的最多)
f = open("../../",mode = "r", encoding = "编码") ../ 返回上个文件
# 读 r 文件全部读取完以后,再次读取就没有内容
read() # 全部读取
read(2) # 通过字符来读取
readline() # 读取一行
readlines() # 一行一行的读取存放在列表中
# 写 w
1.先判断有没有文件存在,文件存在清空文件,文件不存在创建文件
2.写入内容
# 追加写 a
在文件的末尾添加
import os
print(os.geicwd()) #查看当前工作路径
for i in f: #迭代读取
print(i)
# 读写非文本 读取的内容是字节
# rb 不能指定编码
# wb ab 不能指定编码
import requests
ret = requests.get("图片地址")
f = open("图片名",mode="wb")
f.write(ret.content)
f.close()
# r+ 读写
f = open("day8",mode="r+",encoding="utf-8")
print(f.read())
f.write("脑瓜疼啊脑瓜疼")
# w+ 写读
f = open("day8",mode="w+",encoding="utf-8")
f.write("你您你你")
print(f.read())
# a+ 追加写读
f = open("a",mode="a+",encoding="gbk")
print(f.tell()) # 查看的是字节
f.seek(0)
print(f.read(1)) # 字符
# 其他操作
tell 查看光标 -- 返回光标的按当前位置 (按字节)
# seek 移动光标
seek(0,0) # 移动光标到文件的开始位置
seek(0,1) # 光标的当前位置
seek(0,2) # 移动光标到文件的末尾位置
seek(3) # 按照字节移动,从头开始
# 另一个打开文件的方式:
with open("文件路径",mode="操作文件的方式",encoding="编码") as f: # 面向对象中上下文管理
1. 可以自动关闭文件
2. 可以同时打开多个文件
3. 可以同时操作多个文件
with open("day8",mode="r",encoding="utf-8") as f,
open("a",mode="w",encoding="gbk") as f1:
print(f.read())
f1.write("真饿!")
# 修改文件
with open("原文件") as f, open("新文件") as f1:
f.for循环读取
f1.for循环写入
import os
os.remove("文件名") # 删除文件
os.rename("原文件名字","备份名") #对文件进行备份
os.rename("新文件名字","原文件名字") #把新文件改成原文件的名字
import os
with oepn() as f1, open() as f2: # 打开两个文件
for line in f1: # 循环读取文件f1
new_line = line.replace() # 替换文件的内容
f2.write(new_line) # 将替换后的内容写入新文件
os.remove("原文件")
os.rename("新文件名", "旧文件名")