文件操作
文件操作的作用
⽂件操作包含:打开、关闭、读、写、复制......
⽂件操作的的作⽤是:读取内容、写⼊内容、备份内容......
文件操作的基本步骤
- 打开⽂件
- 读写等操作
- 关闭⽂件
打开
在python,使⽤open函数,可以打开⼀个已经存在的⽂件,或者创建⼀个新⽂件,语法如下:
open(name,mode)
name:是要打开的⽬标⽂件名的字符串(可以包含⽂件所在的具体路径)。
mode:设置打开⽂件的模式(访问模式):只读、写⼊、追加等。
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
文件对象方法
写入操作
语法--w
f.write("内容")
# 打开文件
f = open("test.txt","w",encoding="utf-8")
# 写入内容
f.write("大家好呀,我是张三")
# 关闭文件
f.close()
语法--a
# 打开文件
f = open("test.txt","a",encoding="utf-8")
# 写入内容
f.write("大家好呀,我是张三")
# 关闭文件
f.close()
w 和 a 模式:如果⽂件不存在则创建该⽂件;如果⽂件存在, w 模式先清空再写⼊, a 模式直接末尾追加。
读取操作
- read(num)
num表示要从⽂件中读取的数据的⻓度
# 打开文件
f = open("test.txt","r+",encoding="utf-8")
# 读取信息
content = f.read()
# 将读取的信息打印
print(content)
# 关闭文件
f.close()
- readlines()和readline()
readlines可以按照⾏的⽅式把整个⽂件中的内容进⾏⼀次性读取,并且返回的是⼀个列表,其中每⼀⾏的数据为⼀个元素
# 打开文件
f = open("test.txt","a",encoding="utf-8")
# 读取内容
content = f.readlines()
print(content)
# 关闭文件
f.close()
- seek()
作⽤:⽤来移动⽂件指针。
语法
⽂件对象.seek(偏移量, 起始位置)
0:⽂件开头
1:当前位置
2:⽂件结尾
⽂件备份
需求:⽤户输⼊当前⽬录下任意⽂件名,程序完成对该⽂件的备份功能(备份⽂件名为xx[备份]后缀,例如:test[备份].txt)
- 接收⽤户输⼊的⽂件名
- 规划备份⽂件名
- 备份⽂件写⼊数据
代码实现
接收⽤户输⼊⽬标⽂件名
1、提取⽬标⽂件后缀
2、组织备份的⽂件名,xx[备份]后缀
name = input("请输入文件名:")
# 后缀中.的下标
index = name.rfind(".")
# print(name[:index])
# print(name[index:])
new_name = name[:index]+"备份"+name[index:]
print(new_name)
备份⽂件写⼊数据
1、打开源⽂件 和 备份⽂件
2、将源⽂件数据写⼊备份⽂件
3、关闭⽂件
代码演示
# -*- coding:utf-8 -*-
old_name = input("请输入文件名:")
index = old_name.rfind(".")
# print(name[:index])
# print(name[index:])
new_name = old_name[:index]+"备份"+old_name[index:]
old_f = open(old_name,"rb")
new_f = open(new_name,"ab")
while True:
cont = old_f.read()
if len(cont) == 0:
break
new_f.write(cont)
old_f.close()
new_f.close()
文件和文件夹的操作
在Python中⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能,具体步骤如下
1、导入os模块
import os
⽂件重命名
os.rename(⽬标⽂件名, 新⽂件名)
删除⽂件
os.remove(⽬标⽂件名)
创建⽂件夹
os.mkdir(文件名名字)
删除⽂件夹
os.rmdir(⽂件夹名字)
获取当前⽬录
os.getcwd()
改变默认⽬录
os.chdir(⽬录)
获取⽬录列表
os.listdir(⽬录)
批量重命名
文件夹添加字符串
import os
file_list = os.listdir("E:\python_basics")
print(file_list)
for file in file_list[1:]:
new_name = "python_" + file
os.rename(file,new_name)
文件夹删除字符串
file_list = os.listdir()
num = 2
for file in file_list[1:]:
if num == 1:
new_name = "python_" + file
elif num == 2:
result = len("python_")
new_name = file[result:]
os.rename(file,new_name)
标签:文件,name,备份,new,操作,打开,os
From: https://www.cnblogs.com/blog4lyh/p/16811158.html