Python(9)---文件操作

一、读文件

# 本例演示读文件

# 1.打开文件:将硬盘中的文件存入内存中
# file:要操作的文件名,类型是str
# mode:文件打开的方式,r(read)只读打开,w(write)只写打开,a(append)追加打开
# encoding:文件的编码格式
# 返回值:文件对象,后续所有操作都需要这个文件类型
# open(file, mode='r', encoding=None)
# 以只读的方式打开当前文件夹下的1.txt
f = open('1.txt','r')
# 2.读写文件:文件对象.read()
buf = f.read()
# Hello Python
print(buf)
# 3.关闭文件:文件.close(),将内存中的文件同步到硬盘中
f.close()

1.txt中的内容
在这里插入图片描述

二、写文件

# 文件的写操作

# 1.打开文件,w方式下,若文件不存在,则会创建文件,若文件存在,会覆盖清空原文件
f = open('a.txt','w',encoding='UTF-8')
# 2.读写文件
f.write('hello\n')
f.write('world\n')
f.write('你好')
# 3.关闭文件
f.close()

写后a.txt的内容
在这里插入图片描述

三、文件追加内容

# 文件的追加操作

# 打开文件
f = open('b.txt','a',encoding='UTF-8')
# 读写文件
# 注意:不管是选择追加或是写入,都是使用write函数
f.write('123 ')
# 关闭文件
f.close()

追加后b.txt的内容
在这里插入图片描述

四、按字节读取文件

2.txt文件中的内容
在这里插入图片描述
代码:

# 按字节读取文件
# 读文件
f = open('2.txt','r')
# read(n)方法,默认读取全部数据,可以指定n的值,使其一次读取n个字节
buf = f.read(3)
# 123
print(buf)
buf = f.read(3)
# 读取了三个字节:4,\n,5,因此这里有输出会换行
# 4
# 5
print(buf)
# 关闭文件
f.close()

五、按行读取文件

# 按行读取文件

f = open('2.txt','r')
# 文件.readLine(),一次读取一行的内容,返回值是读到的内容
buf = f.readline()
# 1234
print(buf)
# 文件.readLines(),按行读取,一次读取所有行,返回值是列表,列表中的每一项是一行的内容
buf = f.readlines()
# ['5678\n', '9112']
print(buf)
f.close()

六、模拟读取大文件(一行一行读)

# 模拟读取大文件
f = open('2.txt','r',encoding='UTF-8')
# 这种方法适用于文件有换行的
while True:
    buf = f.readline()
    # 容器可以直接作为判断条件,容器中有内容则为True,容器为空则为False
    # 若buf不为空,则值为真
    # 文件未读完
    if buf:
        print(buf,end='')
    # 文件已读完
    else:
        break
# 输出结果:
# 1234
# 5678
# 9112

七、读取二进制文件

# 读取二进制文件
# 文本文件:.txt,.py等
# 二进制文件:具有特殊格式的文件,比如.mp3,.mp4,.avi,.pnh,.jpg等
# 文本文件可以使用文本方式打开,也可以使用二进制方式打开
# 二进制格式的文件,只能使用二进制的方式打开
# 打开方式:rb,wb,ab  注意:不能指定encoding
f = open('c.txt','wb')
# encode方法将其转换为二进制形式的字符串
f.write('你好'.encode())
f.close()
# 读取刚刚写入的文件
f1 = open('c.txt','rb')
buf = f1.read()
# b代表二进制,后面的都是十六进制
# b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(buf)
# 你好
print(buf.decode())
f1.close()

八、文件备份(拷贝)

# 文件备份
# 1.用只读的方式打开文件
f1 = open('a.txt','rb')
# 2.读取文件内容
buf = f1.read()
# 3.关闭文件
f1.close()
# 4.用只写的方式打开新文件
f2 = open('d.txt','wb')
# 5.将第二步读取的内容写入新文件
f2.write(buf)
# 6.关闭新文件
f2.close()

九、对文件和目录进行操作

# 对文件和目录进行操作,需要导入os模块
import os

# 1.文件重命名
# os.rename(原文件路径名,新文件路径名)
# os.rename('e.txt','ee.txt')

# 2.删除文件
# os.remove('ee.txt')

# 3.创建目录
# os.mkdir('test')
# 4.删除空目录
# os.rmdir('test')

# 5.获取当前所在目录
print(os.getcwd())

# 6.获取指定目录中的内容,返回值是列表
print(os.listdir())
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值