文件
什么是文件
定义:操作系统提供的虚拟概念,存储信息(用二进制存储信息)
文件的操作核心是基于文件。
为什么要有文件
文件的编辑是在内存中能够进行的,但是内存无法永久编辑保存数据,如果我们想要保存数据,就需要将文件保存到硬盘中。
文件处理
什么是文件处理
定义:修改存储的信息。
适合大部分文件,除了PDF,EXCLE文件。
操作文件的流程
1.打开文件
①通过文件路径打开
open(需要注意的参数:①文件路径,②打开模式,③字符编码:encoding='utf8')
注:文件路径中的“ ''会表示横向制表符的意思,在打印的时候会报错,解决方法是:①使用\t,第一个会使第二个失去意义对于其他的也是一样。②在操作名之前加入r,会让你所输入的一行""都失去意义。
# 打开文件
it=open(r'D:上海python12期视频python12期视频、day 09 est.py')
print(it)
D:PythonPythonpython.exe "D:/Python学习/python 12期教学视频/test2.py"
<_io.TextIOWrapper name='D:Python学习python 12期教学视频 est.py' mode='r' encoding='cp936'>
输出的这个就是文件
2.修改文件
3.保存文件
4.关闭文件
del.f #只删除python中的文件
f.close() #告诉操作系统关闭文件,会让操作系统将python和操作系统内内存中的文件都关闭。
打开文件的三种模式
文件的打开需要授权,没有权限是没有办法打开的。
打开文件有两种方式:t :打开文本
b :打开文件的二进制模式
t模式
1.读取--r
r:读取文件,不存在的会报错
f = it = open(r'D:\Python学习\python 12期教学视频\test.py', 'rt', encoding='utf8')
date = f.read() #读取所有文本的内容,注意使用后光标制动到文本的最后,如果要循环打印,需要加入 f.seek(0)将光标移动到最前边。
print(date)
判断文件可读还是可以写入:
f = open(r'D:\Python学习\python 12期教学视频\test.py', 'rt', encoding='utf8')
print(readable()) #输出为Ture,表示可以读。
print(writable()) #输出为False,表示不可写入。
print(f.readline()) #这个命令只会从第一行来读,是一行一行读的,输入一次只能读出来一行的内容。
print(f.readlines()) #可以一次性读取出来文本所有的内容。
#要循环读出文本的内容
for i in f.read(): #循环出一个个字符
pring(i)
for i in f: #循环出一行行的所有文件
print(i)
#文本读取读一行少一行,每一行末尾默认有一个换行
2.写入--w
w:如果被写入的文件中已经有内容,则该文件会被清空再进行写入,不存在的则会创建一个,这种状态下文件是不可读,只可以写的。
f = open(r'D:\Python学习\python 12期教学视频\test.py', 'wt', encoding='utf8')
print(f.readable()) #False
print(f.writable()) #Ture
f.write() #会将文件内的所有内容清楚完添加
3.追加写入--a
a:再文件尾部添加内容,不存在的会创建文件,存在的则会直接再尾部进行添加
f = open(r'D:\Python学习\python 12期教学视频\test.py', 'at', encoding='utf8')
it.write('我')
print(it.readable()) #False
print(it.writable()) #Ture
b模式
一般用于图片/音频/视频的保存
import requests
response = requests.get('http://photocdn.sohu.com/20120708/Img347586981.jpg')
data = response.content
with open('长颈鹿.jpg','ab') as f:
f.write(data)
#就可以将图片保存下来
注:python/md/word默认的编码是utf8
txt默认的编码是gbk
pdf(pyPDF2)/excle(pandas)/xml(xml)/json/pkl
绝对路径与相对路径
文件的路径:文件在硬盘中的地址
绝对路径:从盘符开始 D:上海python12期视频python12期视频day 09关于if while for的总结.py,路径完整。
相对路径:执行文件(当前运行的文件)的文件夹下的文件名,执行文件和打开文件属于同一文件夹下,路径不完整,实在此文件夹下开始的。
在未来尽量使用相对路径
with管理文件操作
# with提供一个自动关闭文件(接触了操作系统的占用)
with open('关于if while for的总结.py', 'r', encoding='utf8') as f:
# print(f.read())
# 在这个缩进下不会关闭文件,在这个缩进下对文件操作
data = f.read() # data放到python的内存中
print(data)
# 关闭文件(操作系统),没有关闭python内存中的文件
print(f) # 只涉及python
# print(f.read()) # 涉及操作系统,报错