当前位置:   article > 正文

文件的读写基本操作_文件读写

文件读写

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

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

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

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

读写文件操作格式2:

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

在这里插入图片描述

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

在这里插入图片描述

二、文件读写模式

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

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

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

在这里插入图片描述
文件存在的情况,里面的内容会进行一个覆盖:

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

在这里插入图片描述

a模式 ‘a’ append 追加

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

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

在这里插入图片描述

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

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

在这里插入图片描述

r模式 ‘r’ read 读

文件存在的情况下:

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

在这里插入图片描述
文件不存在的情况下(不存在读模式):

在这里插入图片描述

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

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

# 新建一个文件
file1 = open('d1.txt','w')
file1.write(data)  # 把 d.txt 文件里面的内容读出来,写进新的文件
file1.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

关于 编码、解码的读写

因为比如 图片视频,是由二进制组成的,也就是字节(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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

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

# 新建一个文件
file1 = open('可以将原视频改名.mp4','wb')
file1.write(data)
file1.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

文件读写模式 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()
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
如果说一个文件里面的内容太多了,read(),会将里面的内容一次性读取出来,负荷太大…

方式1:read(参数)

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

在这里插入图片描述
可以选择循环读取,

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

在这里插入图片描述
方式2:readline() >>> 每次读取一行

file = open('1.txt','r')
while True:
    data = file.readline()
    print(data)
    if len(data) == 0:
        break
file.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
方式3:文件中所有字符数据成为一个列表,每一行字符数据都是一个元素 >>> 第1行是列表里的第一个元素,第2行是列表里的第2个元素

file = open('1.txt','r')
data = file.readlines()
print(data)
file.close()
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

2、文件写操作

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

在这里插入图片描述
在这里插入图片描述
读:

file = open('hello.txt','r')
data = file.readlines()
print(data)
file.close()
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

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

	# 复制到一个新的文件中
file1 = open('hellohello.txt','w')
file1.writelines(data)  # write >> 字符串
file1.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

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

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

三、文件路径

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

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

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

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

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

四、文件操作 – 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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/278519
推荐阅读
相关标签
  

闽ICP备14008679号