文件的读写基本操作

一、文件是计算机中数据持久化存储的表现形式

读写文件标准操作格式1:

1、打开文件:file1 = open('文件名','读写模式')
2、操作文件
3、关闭文件:file1.close()

文件操作完毕后必须关闭,否则长期保持对文件的连接状态,造成内存溢出的现象发生

读写文件操作格式2:

# 1、打开文件
file1 = open('demo.txt','w')
# 2、操作文件
file1.write('hello world')
# 3、关闭文件
file1.close()

文件的读写基本操作_第1张图片

1、打开文件:with open('文件名','读写模式')
2、操作文件
3、关闭文件:(自动关闭文件)
#1、打开文件
with open ('dmeo2.txt','w') as file1:
#2、操作文件
    file1.write('hello python')
#3、关闭文件,用 with open是免关闭文件的

文件的读写基本操作_第2张图片

二、文件读写模式

读写模式 功能
r 读取文件内容数据
w 对文件进行数据写入
a 对文件内容数据进行追加
文件不存在 文件存在
( r ) 出现异常 读取文件内数据
(w) 自动创建新文件,并且写入内容数据 覆盖原文件内数据,重新写入
( a ) 自动创建新文件,并且写入内容数据 在原文件内容最后进行数据的追加,并不覆盖

文件不存在的情况下,新建文件,然后将内容写入:

with open('demo3.txt','w') as file:
    file.write('hey')

文件的读写基本操作_第3张图片
文件存在的情况,里面的内容会进行一个覆盖:

with open('demo6.txt','w') as file:
    file.write('hey-hey-hey')

文件的读写基本操作_第4张图片

a模式 ‘a’ append 追加

文件不存在的情况下(新建了一个文件,将内容写入):

with open('d.txt','a') as file:
    file.write('lll-lll-lll')

文件的读写基本操作_第5张图片

文件存在的情况下(在最后追加内容):

with open('d.txt','a') as file:
    file.write('666-666-666')

文件的读写基本操作_第6张图片

r模式 ‘r’ read 读

文件存在的情况下:

with open('d.txt','r') as file:
    data = file.read()
    print(data)

文件的读写基本操作_第7张图片
文件不存在的情况下(不存在读模式):

文件的读写基本操作_第8张图片

完成复制 - 新建一个文件 - 把原来文件读取出来的内容写进新的文件

# 完成复制
file = open('d.txt','r')
data = file.read()
file.close()

# 新建一个文件
file1 = open('d1.txt','w')
file1.write(data)  # 把 d.txt 文件里面的内容读出来,写进新的文件
file1.close()

在这里插入图片描述

关于 编码、解码的读写

因为比如 图片视频,是由二进制组成的,也就是字节(byte) 组成的,而不是字符

读写模式 功能
rb 读取文件内容数据
wb 对文件进行数据写入
ab 对文件内容数据进行追加
文件不存在 文件存在
(rb) 出现异常 读取文件内数据
(wb) 自动创建新文件,并且写入内容数据 覆盖原文件内数据,重新写入
(ab) 自动创建新文件,并且写入内容数据 在原文件内容最后进行数据的追加,并不覆盖
# 完成复制
file = open('zhao.jpg','rb')
data = file.read()
file.close()

# 新建一个文件
file1 = open('女友1号.jpg','wb')
file1.write(data)
file1.close()

文件的读写基本操作_第9张图片

# 完成复制
file = open('视频.wmv','rb')
data = file.read()
file.close()

# 新建一个文件
file1 = open('可以将原视频改名.mp4','wb')
file1.write(data)
file1.close()

文件读写模式 plus

读写模式 功能
r+ 基于 字符 单位的读写模式
w+ 基于 字符 单位的读写模式
a+ 基于 字符 单位的读写模式
rb+ 基于 字节 单位的读写模式
wb+ 基于 字节 单位的读写模式
ab+ 基于 字节 单位的读写模式

加号,就是一个加强版的意思

1、文件读操作

字符模式 参数
read()
read() 数字指定大小
readline()
readlines()
返回值 说明
文件中全部字符数据 内存占用过大
文件中指定数量字符数量 取消结束标志,即读取到空字符
文件中一行字符数据 一行字符数据以结束符为 \n 描述
文件中所有字符数据成为一个列表,每一行字符数据都是一个元素 一行字符数据以结束符为 \n 描述
file = open('1.txt','r')
data = file.read()
print(data)
file.close()

文件的读写基本操作_第10张图片
如果说一个文件里面的内容太多了,read(),会将里面的内容一次性读取出来,负荷太大…

方式1:read(参数)

file = open('1.txt','r')
data = file.read(10) # 一次读取出来的大小,10个字符;空格也属于一个字符
print(data)
file.close()

文件的读写基本操作_第11张图片
可以选择循环读取,

file = open('1.txt','r')
while True:
    data = file.read(3)  # 一般情况下,这里的参数是 1024 
    print(data)
    if len(data) == 0:
       break
file.close()

文件的读写基本操作_第12张图片
方式2:readline() >>> 每次读取一行

file = open('1.txt','r')
while True:
    data = file.readline()
    print(data)
    if len(data) == 0:
        break
file.close()

文件的读写基本操作_第13张图片
方式3:文件中所有字符数据成为一个列表,每一行字符数据都是一个元素 >>> 第1行是列表里的第一个元素,第2行是列表里的第2个元素

file = open('1.txt','r')
data = file.readlines()
print(data)
file.close()

在这里插入图片描述

2、文件写操作

字符模式 参数 / 作用
write 字符串 / 将字符串内容写入文件
writelines 仅包含字符信息的存储模式(列表、元组、集合、字典键)/ 将存储模型中的字符信息写入文件
	# 1、打开文件
file = open('hello.txt','w')
	# 2、操作文件
file.write('hello world')
	# 3、关闭文件
file.close()

文件的读写基本操作_第14张图片
文件的读写基本操作_第15张图片
读:

file = open('hello.txt','r')
data = file.readlines()
print(data)
file.close()

在这里插入图片描述

	# 1、打开文件,先读取
file = open('hello.txt','r')
data = file.readlines()
print(data)
file.close()

	# 复制到一个新的文件中
file1 = open('hellohello.txt','w')
file1.writelines(data)  # write >> 字符串
file1.close()

文件的读写基本操作_第16张图片

  • 纯文本编辑得到的文件读写使用字符模式
  • 非纯文本编辑得到的文件读写使用字节模式

推荐: 字节模式 >> 字符模式

三、文件路径

  • 绝对路径(从头开始算的,就叫做 绝对路径)
  • 相对路径(相对来说的)

有个关于相对路径的表示法需要说明一下:

./../../         # 前面的点表示当前位置,后两个点表示上一级,再后面两个点表示上一级的上一级

./demo1/demo2/demo3/666.txt    # 表示当前目录的下一级demo1的下一级demo2的下一级demo3中的文件 666.txt

所以,上面只需要写点点点,表示上一级 上一级;下面表示下一级下一级,就需要写具体的文件名了

四、文件操作 – OS模块

函数名 说明
rename(文件1,文件2) 文件名更改,从文件1改为文件2
remove(文件名) 删除文件
mkdir(目录名) 创建目录
rmdir(目录名) 删除目录
import os

	# 文件的改名 rename(文件1,文件2)  文件名更改,从文件1改为文件2
os.rename('demo1.txt','./../demo9.txt')

	# 删除文件 
os.remove('./../demo2.txt')

	# 创建目录 mk >> make dir
os.mkdir('./../demo2')

	# rmdir 删除目录
os.rmdir('./../demo2')

注意:删除文件 和 删除目录 是两个东西

你可能感兴趣的:(Python)