一、文件的基本操作
① 打开文件
② 读写文件
③ 关闭文件
1.open函数
使用open()函数,可以打开一个已经存在的文件,或者创建一个新文件
f = open(name,mode)
name :是要打开的目标文件名的字符串(可以是包含文件所有具体路径)
mode: 设置打开文件的模式(访问模式):只读r、写入w、追加a等。
r模式:代表以只读模式打开一个已存在的文件,后续我们对这个文件只能进行读取操作。如果文件不存在,则直接报错。另外,r模式在打开文件时,会将光标放在文件的第一行(开始位置)。
w模式:代表以只写模式打开一个文件,文件不存在,则自动创建该文件。w模式主要是针对文件写入而定义的模式。但是,要特别注意,w模式在写入时,光标也是置于第一行同时还会清空原有文件内容。
a模式:代表以追加模式打开一个文件,文件不存在,则自动创建该文件。a模式主要也是针对文件写入而定义模式。但是和w模式有所不同,a模式不会清空文件的原有内容,而是在文件的尾部追加内容。
2.write函数写入文件
f.write('要写入的内容,要求是一个字符串类型的数据')
3.close函数关闭文件
f.close()
4.入门级案例
# 1、打开文件
f = open('python.txt', 'w', encoding='utf-8')
# 2、写入内容
f.write('人生苦短,我学Python!')
# 3、关闭文件
f.close()
5.文件的读取操作
read(size)方法:主要用于文本类型或者二进制文件(图片、音频、视频...)数据的读取
size: 表示要从文件中读取的数据的长度(单位是字节),如果没有传入size,那么就表示读 取文件中所有的数据。
# 1、打开文件
f = open('python.txt', 'r', encoding='utf-8')
# 2、使用read()方法读取文件所有内容
contents = f.read()
print(contents)
# 3、关闭文件
f.close()
readlines()方法
:主要用于文本类型数据的读取readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
# 1、打开文件
f = open('python.txt', 'r', encoding='utf-8')
# 2、读取文件
lines = f.readlines()
for line in lines:
print(line, end='')
# 3、关闭文件
f.close()
二、文件和文件夹操作
1.os模块
函数 | 功能 |
os.rename(目标文件名,新文件名) | 对文件进行重命名 |
os.remove(要删除文件名称) | 对文件进行删除 |
# 第一步:导入os模块
import os
# 第三步:引入time模块
import time
# 第二步:使用os.rename方法对python.txt进行重命名
os.rename('python.txt', 'linux.txt')
# 第四步:休眠20s
time.sleep(20)
# 第五步:删除文件(linux.txt)
os.remove('linux.txt')
2.与文件夹操作相关操作
函数 | 功能 |
os.mkdir(新文件夹名称) | 创建一个指定名称的文件夹 |
os.getcwd() | current work directory,获取当前目录名称 |
os.chdir(切换后目录名称) | change directory,切换目录 |
os.listdir(目标目录) | 获取指定目录下的文件信息,返回列表 |
os.rmdir(目标目录) | 用于删除一个指定名称的"空"文件夹 |
# 导入os模块
import os
# 1、使用mkdir方法创建一个images文件夹
if not os.path.exists('images'):
os.mkdir('images')
if not os.path.exists('images/avatar')
os.mkdir('images/avatar')
# 2、getcwd = get current work directory
print(os.getcwd())
# 3、os.chdir,ch = change dir = directory切换目录
os.chdir('images/avatar')
print(os.getcwd())
# 切换到上一级目录 => images
os.chdir('../../')
print(os.getcwd())
# 4、使用os.listdir打印当前所在目录下的所有文件,返回列表
print(os.listdir())
# 5、删除空目录
os.rmdir('images/avatar')
三、文件操作综合案例
需求:批量修改文件名,既可添加指定字符串,又能删除指定字符串。
步骤:
① 设置添加删除字符串的的标识python-(file1.txt => p)
② 获取指定目录的所有文件
③ 将原有文件名添加/删除指定字符串,构造新名字
④ os.rename()重命名
# 1、导入os模块
import os
# 2、定义一个要重命名的目录
path = 'static'
# 3、切换到上面指定的目录中
os.chdir(path)
# 5、定义一个标识,用于确认是添加字符还是删除字符
flag = int(input('请输入您要执行的操作(1-添加字符,2-删除字符):'))
# 4、对目录中的所有文件进行遍历输出 => os.listdir()
for file in os.listdir():
# 5、判断我们要执行的操作(1-添加字符,2-删除字符)
if flag == 1:
# 01.txt => python-01.txt
newname = 'python-' + file
# 重命名操作
os.rename(file, newname)
print('文件批量重命名成功')
elif flag == 2:
# python-01.txt => 01.txt
index = len('python-')
newname = file[index:]
# 重命名操作
os.rename(file, newname)
print('文件批量重命名成功')
else:
print('输入标识不正确,请重新输入...')