文件处理
文件操作的基本流程
应用程序运行过程中产生的数据最先都是存放于内存中的,若想永久保存下来,必须要保存于硬盘中,应用程序若想操作硬件必须通过操作系统,而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念,用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统完成对硬盘的具体作用
基本流程
1、什么是文件
操作系统提供给你操作硬盘的一个工具
2、为什么要用文件
因为人类和计算机要永久保存数据
3、怎么用文件
相对路径:a.txt # 必须与当前py文件在同一级目录
绝对路径:D:\项目路径\python13期\day07\a.txt
f = open("a.txt")
print(f.readable()) # 判断文件是否可写
print(f.writable()) # 判断文件是否可读
# def f # 回收变量资源
f.close() # 回收操作系统的资源
True
False
with open('a.txt', mode='r')as rf, \
open('a.txt', mode='w')as wf: # with会自动帮你回收操作系统的资源,无需自己操作
print(rf.readable()) # 判断文件是否可写
print(wf.writable()) # 判读那文件是否可写
True
True
# r转义
with open(r'C:\Users\ever\PycharmProjects\untitled\oldboy\正式开班\day7\a.txt')as f:
print(f.read()) # 读取文件
默认打开文件的模式:rt read text
rb read bytes
with open(r'dir\a.txt', mode='rb')as f: # 读取里dir\a.txt里面的文件内容
print(f.read())
b'test'
with open(r'lixiaoran.png', mode='rb')as rf,\ # 读取lixianran这个图片,以rb模式
open('lixiaoran.jpg', mode='wb')as wf: # 将lixiaoran的图片以jpg的格式重新写入一份
lixiaoran = rf.read() # 读取png结尾的图片
wf.write(lixiaoran) # 写入为jpg格式的图片
然后会生成一张新的图片
打开文件的三种模式
r:
1、只读
2、如果文件不存在,会报错
w:(慎用)
1、只写
2、如果文件不存在,则新建一个文件写入数据
3,如果文件内存在数据,会将数据清空,重新写入
a:
1:追求写
2:如果文件内存在数据,会在已有数据的后面追加数据
3:如果文件不存在,则新建一个文件写入数据
处理文件的模式
t:
b:
验证r:
with open(r'dir\b.txt', 'r', encoding='utf8')as f:
print(f.readable())
C:\Users\ever\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/ever/PycharmProjects/untitled/oldboy/正式开班/day7/文件处理.py
Traceback (most recent call last):
File "C:/Users/ever/PycharmProjects/untitled/oldboy/正式开班/day7/文件处理.py", line 26, in <module>
with open(r'dir\b.txt', 'r', encoding='gbk')as f:
FileNotFoundError: [Errno 2] No such file or directory: 'dir\\b.txt'
with open(r'dir\a.txt', 'r', encoding='utf-8')as f: # 这个f是可以迭代对象
# print(f.readable()) # 判断是否可读
# print(f.read()) # 一次性读出文件里面的所有内容
# print(f.readline()) # 执行一次,打印一行内容
# print(f.readlines()) # 将每一行的数据都读出来,显示在列表里面
# print(f.read())
# print(f.readable())
# print(f.read())
# for i in f: # 可以通过for循环打印出文件里面的内容
# print(i)
# dir\a.txt 内容是
就是浅拷贝
的原理,
l2拷贝l1的
时候只拷贝了他的
第一层,也就是在其他
内存中
重新创建了
l1的第一
层数据
验证w
with open(r'dir\b.txt', 'w', encoding='utf8')as f: # 打开dir目录下的b.txt文档,以写入模式进行
f.write("上海校区第一帅-sean") # 写入这里面的内容
with open(r'dir\b.txt', 'w', encoding='utf8')as f: # 打开dir目录下的b.txt文档,以写入模式进行
# f.write("上海校区第一帅-sean") # 写入这里面的内容
f.writelines(["上午没翻车\n", '我很高兴']) # 追加内容,会替换以前产生的内容