IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础——文件和目录操作 -> 正文阅读

[Python知识库]Python基础——文件和目录操作

学习内容

1、文件操作

文件基本操作
文件读写常用
二进制文件操作
案例——文件备份

2、目录操作

目录操作常用
案例——批量修改文件名

一、文件操作

1、文件基本操作

文件操作包含 打开文件,操作文件,关闭文件 三个步骤

  • 打开文件: open(file, mode, encoding) ,打开文件使用的是 open() 函数
  • 注意: 三个参数中,前两个参数名可以省略,但第三个encoding不能省略。例如open('test.txt', 'r', encoding='gbk')
1、file 参数表示文件名

2、mode 参数表示文件打开模式:
	r	: 表示只读,不会修改文件内容
	w	: 表示只写,每打开一次文件就会将原来的内容清除,然后保留新的内容
	a	: 表示追加,不会清除原文件的内容,添加的内容会追加在文件的末尾
	
	在使用 w/a 打开模式时,如果不存在对应的文件则会自动创建文件,如果存在
	对应的文件则表示打开文件,但使用 a 打开模式时必须存在对应的文件

3、encoding 参数表示文件的编码格式
	常见的编码格式有 utf-8 gbk ascii 等,当编码格式不同时可能会出现乱码
  • 文件操作: 文件操作主要是文件的读写过程
1、读文件: read() 函数
2、写文件: write() 函数
  • 关闭文件: close() 函数,能将内存中操作好的文件同步到硬盘中
  • 一般情况下,在操作文件时习惯使用 with 关键字,好处是不需要主动使用 close() 函数关闭文件,在操作结束后文件会自动关闭
# 写文件
f = open('test.txt', 'w', encoding='utf-8')
f.write('Hello world')
f.close()


# 读文件
with open('test.txt', 'r', encoding='utf-8') as f1:
    line = f1.read()
    print(line)

2、文件读写常用

  • 读文件: 必须使用 mode='r' 模式打开,对应的文件必须存在
  • 在 python 中,读取文件是一次性的,从头开始往下读取,直到需要提取的内容结束,且之前读取过的内容不会再被提取
  • 下列函数中,读取的文件内容都是字符串类型
read(n)		: n 表示一次读取多少字节的内容,不写则表示全部读取
readline() 	: 一次读取一行的内容
readlines()	: 按行读取,读取全部内容,返回值是列表,列表的每项是一行的内容
readable()	: 判断文件是否可读,如果可读返回 True,否则返回 False
  • 写文件: 必须使用 mode='w/a' 模式打开,打开的文件可以不用存在,能自动创建
write()			: 写入文件内容,写入的对象只能是字符串
writelines()	: 写入文件内容,写入的对象是一个迭代序列,如字符串、列表等
writable()		: 用来判断函数是否可写入,能写入返回 True,否则返回 False
  • 举例
# 写文件
f = open('test.txt', 'w', encoding='utf-8')

# 先判断文件是否可写入
if f.writable():
    f.write('Write file\n')
    f.writelines(['Hello world\n', 'Hello python'])

f.close()


# 读文件
with open('test.txt', 'r', encoding='utf-8') as f1:
    # 先判断文件是否可读
    if f1.readable():
        line = f1.read()

    print(line)

在这里插入图片描述

3、二进制操作文件

  • 二进制操作文件:只能 读取或写入 文件对应的二进制,比如图片和视频等内容
  • 注意: 操作二进制文件时,不能使用 encoding 参数
rb 	: 读取的方式打开二进制文件
wb 	: 写入的方式打开二进制文件
ab 	: 追加的方式打开二进制文件
  • 举例: 在当前目录下添加一个 test.jpg 图片
    在这里插入图片描述
# 将 Hello world 写入文件中
with open('test.jpg', 'ab') as f1:
    f1.write(b'\nHello world')


# 二进制读取图片内容
with open('test.jpg', 'rb') as f:
    for i in f.readlines():
        print(i)

在这里插入图片描述

4、案例——文件备份

  • 思路: 先读取文件内容,然后再创建一个备份文件,将读取的内容写入文件中
# 文件备份:以文本格式为例,备份图片等思路相同

print("注意:文件名的格式需要包含后缀名,如 'fileName.txt'")
fileName = input('输入要备份的文件名:')


# 创建备份文件名
bFiles = fileName.rsplit('.', 1)
bFileName = bFiles[0] + '[备份].' + bFiles[1]


# 开始备份文件
with open(fileName, 'r', encoding='utf-8') as f1, \
        open(bFileName, 'w', encoding='utf-8') as f2:
    f2.write(f1.read())
    print(f'{fileName}\t备份完成')

在这里插入图片描述

二、目录操作

1、目录操作常用

  • 在 python 中,对目录的操作需要使用到 os 模块,使用关键字 import 引入
rename() 	: 对文件重命名
remove()  	: 删除文件
mkdir() 	: 创建空目录
getcwd() 	: 获取当前目录
chdir() 	: 切换目录
listdir() 	: 获取指定目录的内容,返回值是列表,列表的每一项是对应的文件名

2、案例——批量修改文件名

# 文件批量操作:修改文件名

# 导入 os 模块:
import os


# 获取当前目录
oldDir = os.getcwd()


# 在当前目录下创建一个 Test 目录,然后进入对应的目录
if 'Test' not in os.listdir():
    os.mkdir('Test')

# 进入对应的目录
os.chdir('Test')


# 批量创建几个空文件,
for i in range(1, 10):
    f = open(f'{i}.txt', 'w', encoding='utf-8')
    f.close()


# 获取已经创建的文件名
fileNames = os.listdir()
print(fileNames)


# 开始修改文件名
index = 0
for i in 'abcdefghi':
    os.rename(fileNames[index], f'{i}.txt')
    index += 1


print(os.listdir())
os.chdir(oldDir)    # 修改完成后切换回原目录

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:19:48  更:2021-08-21 15:20:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/1 16:42:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码