用python实现简易文本备份的功能:
主要运用:
1、python的os库
2、文件读写相关操作
"""
@author:maoWeiyang
@file:yes.py
@ide:PyCharm
@time:2020/3/1317:57
"""
import os
import os.path
class FileBackup(object):
"""
文本文件备份类
"""
def __init__(self, src, dist):
"""
构造方法
:param src:目录 需要备份的文件目录
:param dist: 目录 备份的文件目录
"""
self.src = src
self.dist = dist
def read_files(self):
"""
读取src目录下的所有文件
"""
ls = os.listdir(self.src)
for l in ls:
# 循环处理每一个文件/文件夹
self.backup_file(l)
def backup_file(self, file_name):
"""
处理备份
:param file_name: 文件/文件夹的名称
"""
# 1.判断dist是否存在,如果不存在,要创建这个目录
if not os.path.exists(self.dist):
os.makedirs(self.dist)
print("指定目录不存在,创建完成")
# 2.判断文件是否为我们要备份的文件
# 拼接完整原路径
full_src_path = os.path.join(self.src, file_name)
full_dist_path = os.path.join(self.dist, file_name)
# 首先要判断是否为文件夹,然后可以借助于文件的后缀名进行判断
if os.path.isfile(full_src_path) and os.path.splitext(full_src_path)[-1].lower() == '.txt':
print(full_src_path)
# 3.读取文件内容
with open(full_dist_path, 'w', encoding='utf-8') as f_dist:
print(">>开始备份【{0}】".format(file_name))
with open(full_src_path, 'r', encoding='utf-8') as f_src:
while True:
rest = f_src.read(100)
if not rest:
break
# 4.把读取到的文件写到新文件中
f_dist.write(rest)
f_dist.flush()
print(">>>【{0}】备份完成".format(file_name))
else:
print("文件类型不符合要求,跳过>>")
if __name__ == '__main__':
#当前根地址
base_path = os.path.dirname(os.path.abspath(__file__))
#要备份的文件目录地址
src_path = os.path.join(base_path, 'src')
# 备份后的文件目录地址
dist_path = os.path.join(base_path, 'dist')
#初始化文本备份类并进行备份处理
back = FileBackup(src_path, dist_path)
back.read_files()