文件操作
一、文件操作的作用
- 文件操作包含:打开、关闭、读、写、复制......
- 文件操作的作用是:读写内容、写入内容、备份内容......
- 文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。
二、文件操作的基本步骤打开文件
- 打开文件
- 读写等操作
- 关闭文件
(一)打开
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:
open(name,mode)
- name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径。)
- mode:设置打开文件的模式(访问模式):只读、写入、追加等。
- *encoding=“utf-8”*
模式 | 描述 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
三、文件对象方法
(一)写入操作
- 先创建一个文件,然后往文件内写入内容。
f = open("test.txt","a",encoding="utf-8") # write 添加数据 f.write("大家好,我是张三") f.close()
- w和a模式:如果文件不存在则创建该文件:如果文件存在,w模式先清空再写入,a模式直接末尾追加
(二)读取操作
1、read(num)
- num表示要从文件中读取的数据的长度
# 打开文件 f = open("test.txt","r",encoding="utf-8") # 读取信息 cont = f.read() # 将读取的信息打印 print(cont) # 关闭文件 f.close()
2、上下文管理器
with open("test.txt","r",encoding="utf-8") as f: cont = f.read() print(cont)
-------------------
大家好,我是张三
3、readlines()
f = open("test.txt","r",encoding="utf-8") cont = f.readlines() print(cont) f.close()
----------------------------
['大家好,我是张三']
4、readline()
f = open("test.txt","r",encoding="utf-8") cont = f.readline() print(cont) f.close() ---------------------- 大家好,我是张三
5、seek()
- 作用:用来移动文件指针。
- 语法:文件对象.seek(偏移量,起始位置)
- 0:文件开头
- 1:当前位置
- 2:文件结尾
with open("test.txt","r",encoding="utf-8") as f: f.seek(6,0) cont = f.read() print(cont) ----------------------------- 好,我是张三
- 注意:中文占三个字节,英文占一个字节。
(三)文件备份
- 需求:用户输入当前目录下任意文件名,程序完成对该文件的备份功能(备份文件名为XX【备份】后缀,列如:test【备份】.txt)
name = "test.txt" # 找到.的索引 index = name.rfind(".") print(index) # test备份.txt new_name = name[:index]+"备份"+name[index:] old_file = open("test.txt","r",encoding="utf-8") new_file = open(new_name,"a",encoding="utf-8") while True: cont = old_file.read() if len(cont) == 0: break new_file.write(cont) old_file.close() new_file.close()
- 备份文件写入数据
- 1、打开源文件和备份文件
- 2、将源文件数据写入备份文件
- 3、关闭文件
四、文件和文件夹的操作
- 在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下
1、导入os模块
import os
2、文件重命名
os.rename(目标文件名,新文件名)
import os os.rename("aa.txt","bb.txt")
3、删除文件
os.remove(目标文件名)
os.remove("bb.txt")
4、创建文件夹
os.mkdir(文件名名字)
os.mkdir("这是第一个新创建的文件夹")
5、删除文件夹
os.rmdir(文件夹名字)
os.rmdir(“这是第一个新创建的文件夹”)
6、获取当前目录
os.getcwd()
print(os.getcwd())
7、改变默认目录
os.chdir(目录)
os.chdir(“这是第一个新创建的文件夹”)
8、获取目录列表
os.listdir(目录)
file_list = os.listdir() print(file_list)
-------------------
['.idea', 'bb.txt', 'demo1.py', 'demo2.py', 'demo3.py', 'main.py', 'test.txt', 'test备份.txt', '一首诗.txt','这是第一个新创建的文件夹']
五、批量重命名
- 先是找到所有想要重命名的文件夹
- 进行遍历修改
import os file_list = os.listdir() print(file_list) for file in file_list: new_name = "python_"+file os.rename(file,new_name)
- 还原重命名
file_list = os.listdir() for file in file_list[1:]: result = len("python_") new_name = file[result:] os.rename(file,new_name)