phtnon 文件操作

1、文件定义

(1)、什么是文件?

          文件是操作系统为用户或者应用程序提供一个读写硬盘的虚拟单位

          文件的核心就是读写,即我们只需要对于进行读写操作,就是对操作系统发起请求,然后由操作系统将用户或者应用程序对文件的读写操作转化成具体的硬件指令。

(2)、为什么要有文件?

         因为内存无法永久保存数据,如果要永久保存数据我们要存到硬盘,而操作文件就可以实现对硬件的操作

(3)、如何用文件

name = 'qqc'

先把内存的数据存到硬盘中

再把硬盘的数据读到内存中

(4)文件操作流程

f = open(r'E:SH_fullstack_s2day08a.txt',mode='r') 向操作系统发起请求,要求操作系统打开文件,占用操作系统资源

data = f.read()  向操作系统发起读的请求,会被操作系统转成具体的硬盘操作,将内容由硬盘读入内存

f.close  向操作系统发起请求,让操作系统关不文件,回收系统资源

总结:

打开文件

读写

关闭

2、路径

(1)、绝对路径:从盘符(C:\ E:\ D:\)开始写一个完整的路径
(2)、相对路径:相对于当前执行文件所在的文件夹开始找
f =open(r,'aatxt') r 表示后面的都是原生字符串


3、文件的打开模式
(1)控制读写文件内容的结果又两种:t模式text,b模型bytes
注意:
1、t与b这两种模式均不能单独使用,都需要与r/w/a(读,写,追加)之一连用
2、默认的内容格式是t
3、只有文本文件才能用t模式,也只有文本文件才有字符编码的概念
(2)操作文件的基础模式有三种:
1、read,只读模式
在文件不存在时会报错,在文件存在的时候回将文件指针移动到开头
 f=open(r'b.txt',mode='rt',encoding='utf-8')
# data1=f.read()
# print('第一次:',data1)
# # print(type(data1))
#
# # data2=f.read()
# # print('第二次:',data2)
# f.close()

# f=open(r'b.txt',mode='rt',encoding='utf-8')
# data2=f.read()
# print('第二次:',data2)
# f.close()

2、只写模式,write,只能写不能写读
文件不存在时会建空文件,文件存在时会将文件清空
# f=open(r'c.txt',mode='wt',encoding='utf-8')
# # print(f.readable())
# # f.read()
# # f.write('你好啊我的天 你好啊我的地 啊啊啊啊啊啊 ')
# # f.write('4444 ')
# # f.write('5555')
#
# lines=['1111 ','2222 ','33333 ']
# # for line in lines:
# # f.write(line)
# f.writelines(lines)
#
# f.close()
3、只追加写模式 a
只能写,不能读
在文件不存在时会创建空文件,在文件存在的时候会将指针移动蛋文件末尾
# f=open('d.txt',mode='at',encoding='utf-8')
# print(f.readable())
# f.read()

# f.write('555555 6666 ')
# f.writelines(['77777 ','8888888 ','999999999 '])

# f.close()

b:二进制模式
注意:
1、一定不能指定字符编码,只有t模式才与字符编码有关
2、b 是二进制模式,是一种通用的文件读取模式,因为所有的文件在硬盘中都是以二进制形式存放的
(1)f=open('egon.jpg','rb')      读图片
# data=f.read()
# print(type(data))
# f.close()

(2)with open(r'D:/shangke.mp4','rb') as f:
print(f.read() ) 读视频
 

(3)# 文件复制操作
with open(r'D:/shangke.mp4','rb') as f: #读取视频文件
data = f.read()
print(data)
f= open(r'E:/英雄时刻/shan.mp4','wb') #将视频写入所指定的新的路径
f.write(data)

(4)with open(r'c','wb')as f:
# data=f.read()
f.write('您好 '.encode('UTF-8') ) #用二进制模式写,需要把所写的内容进行编码

(5)with open(r'c','r',encoding= 'UTF-8')as f,
open(r'qqc','a',encoding= 'UTF-8')as f1:
f1.write(f.read() ) #将c文件的内容读出来,追加到qqc文件中



循环读
#循环读
# with open(r'qqc','r',encoding= "UTF-8")as f:
# for y in f:
# print(y)

# with open(r'qqc','rb')as f:
# for x in f:
# print(x)
 













原文地址:https://www.cnblogs.com/quqinchao/p/qqcwenjian.html