操做文件:
f = open("文件路径",mode="模式",encoding="编码")
open() # 调用操做系统打开文件
mode # 对文件的操做方式
encoding # 文件的编码 -- 存储编码要统一
# win -- gbk
# linux -- utf-8
# mac -- utf-8 最经常使用的就是utf-8linux
f 文件句柄 -- 操做文件的至关于锅把编码
读 r 写: w清空写 ,a追加写 读 rb 写 wb ab操作系统
r rb r+ r+bcode
r对象
文件所有读取完后之后,再次读取就没有内容内存
f = open("a",mode="r",encoding="gbk")utf-8
content = f.read() # 所有读取开发
c1 = f.read(3) # 按字符个数读取rem
print(f.readline(3)) # 读取一行内容中多个字符get
print(f.readlines()) # 一行一行读取,存储到列表中 获取到的内容里显示\n,\n是换行
f = open("a",mode="r",encoding="gbk")
print(f.read())
F:\a\111.txt 绝对路径 从磁盘的根处查找
相对路径 相对于当前文件进行查找的
import os
print(os.getcwd()) #
print(repr("F:\a\文件初识.txt"))
print("F:\a\文件初识.txt")
一行一行读取 -- 防止内存溢出
for i in f: # 迭代读取print(i)
写 w 清空写 a 追加写
w 分为两步
1.检测是否存在文件,没有文件,建立文件,有文件清空文件
f = open("day8",mode="w",encoding="utf-8") #打开
f.write("123") # 写
f.close() # 关闭文件
操做文件:1.打开文件 2.操做文件 3.关闭文件
f = open("a",mode="r",encoding="gbk") print(f.read()) f.close() # 关闭文件后就不能继续读取了 f = open("a",mode="a",encoding="gbk") f.write("啊啊啊,好困啊") 文件末尾添加
f = open("1.jpg",mode="rb")
rb ,wb,ab 不能指定编码
print(f.read()) # read() 所有读取
print(f.read(3)) # 字节
import requests 爬取
ret = requests.get("http://www.521609.com/uploads/allimg/151124/1-1511241G251317.png")
f = open("2.jpg",mode="wb")
f.write(ret.content)
f.close()
r 读 r+ 读写
w 写 w+ 写读
a 写 a+ 写读
错误示范
f = open("day8",mode="r+",encoding="utf-8")
f.write("你好啊") #文件此时会被改写
print(f.read()) #读到的内容是修改后的
正确示范 -- 后期开发中使用频率比较低
f = open("day8",mode="r+",encoding="utf-8")
print(f.read())
f.write("脑瓜疼啊脑瓜疼")
查看光标: tell() 返回值 返回的就是当前光标的位置
移动光标:
seek(0,0) 文件开始位置
seek(0,1) 光标的当前位置
seek(0,2) 文件末尾位置
seek(3) 按照字节调节 使用utf-8是3 gbk是2
f = open("day8",mode="r",encoding="utf-8")
f.read()
with open("day8",mode="r",encoding="utf-8") as f: # 面向对象中上下文管理
print(f.read())
with open 帮助自动关闭文件
with open 同时操做多个文件
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("day8",mode="r+",encoding="utf-8")as f: content = f.read() #赋值 content = content.replace("您","你") #替换 f.seek(0,0) #移动光标到文首 f.write(content) #写入内容 with open("day8",mode="r",encoding="utf-8")as f,\ open("new_day8",mode="a",encoding="utf-8")as f1: for i in f: content = i.replace("你","我") f1.write(content) # import os 建立备份文件 # os.remove("day8") # 原数据能够使用rename来作备份 # os.rename("new_day8","day8")
# 1.文件初识 # open() # 打开文件 # open("文件的路径") # open(mode="对文件的操做方式") # open(encoding="utf-8") # 编码:win -gbk linux - utf-8 mac -- utf-8 # f = open() #文件句柄 # 读文本 # r 模式 # read() # 所有读取 # read(3) # 经过字符来读取 # readline() # 读取一行 # readlines() # 一行一行的读取存放的列表中 # 写文本 # w 清空写, a 追加写 # w操做: # 1.先判断有没有文件存在,文件存在清空文件,文件不存在建立文件 # 2.写入内容 # a操做: # 在文件的末尾添加 # 读非文本 # rb 不能指定编码 # 写非文本 # wb ab 不能指定编码 # +操做: # r+ 读写 # 1.先读,再写 # w+ 写读 # 2.先写后读 # a+ 追加写读 # 3. 先写后读 # 其余操做: # tell() 查看光标 -- 返回光标的当前位置(字节) # seek 移动光标 # seek(0,0) # 移动光标到文件开始位置 # seek(0,1) # 光标的当前位置 # seek(0,2) # 移动光标到文件的末尾位置 # seek(3) # 按照字节移动 # 另外一个打开方式: # with open("文件路径",mode="操做文件的方式",encoding="编码") as f: # 上下文管理 # 1.能够自动帮助我们关闭文件 # 2.能够同时打开多个文件 # 修改文件: # with open("原文件")as f,open("新文件")as f1: # f.for循环的读取 # f1.for循环的写入 # import os # os.rename("原文件名字",备份名字") # 对原文件进行备份 # os.rename("新文件名字","原文件名字") # 把新文件改为原文件的名字