案例:python实现代码文件备份机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了案例:python实现代码文件备份机相关的知识,希望对你有一定的参考价值。

管理目录与文件

只想要我要的文件格式

# 遍历 
import re
re_filename = re.compile(‘(.*pdf$)|(.*docx$)|(.*xlsx$)‘)  
for root,dir,files in os.walk(‘.‘):   # 遍历 当前路径、目录、文件,接着下级路径、目录、文件
    print(root,dir,files)
. [‘目录1‘, ‘目录2‘] [‘3.1-管理目录与文件w.pdf‘, ‘3.2-处理任意格式的文本文件w.pdf‘, ‘3.3-python操作办公文件w.pdf‘, ‘a.docx‘, ‘b.xlsx‘, ‘绝密文件.pdf‘]
.目录1 [] [‘1.txt‘]
.目录2 [] [‘2.txt‘]
# 显示根目录内所有文件
import re
for root,dir,files in os.walk(‘.‘):
    for name in files:
        file = os.path.join(root,name)  # 根目录的文件
        print(file)
.3.1-管理目录与文件w.pdf
.3.2-处理任意格式的文本文件w.pdf
.3.3-python操作办公文件w.pdf
.a.docx
..xlsx
.绝密文件.pdf
.目录11.txt
.目录22.txt
# 显示根目录内.pdf、.docx、.xlsx文件
import re
re_filename = re.compile(‘(.*pdf$)|(.*docx$)|(.*xlsx$)‘)
for root,dir,files in os.walk(‘.‘):
    for name in files:
        file = os.path.join(root,name)
        if re_filename.match(file):
            print(file)
.3.1-管理目录与文件w.pdf
.3.2-处理任意格式的文本文件w.pdf
.3.3-python操作办公文件w.pdf
.a.docx
..xlsx
.绝密文件.pdf

压缩备份多个文件

# 创建压缩文件
import zipfile  
my_zip = zipfile.ZipFile(‘busy.zip‘,‘w‘)  # 以只写的方式打开压缩文件,并创建对象
my_zip.write(‘a.docx‘,compress_type=zipfile.ZIP_DEFLATED)
my_zip.write(‘b.xlsx‘,compress_type=zipfile.ZIP_DEFLATED)
my_zip.close()
os.listdir()
[‘3.1-管理目录与文件w.pdf‘,
 ‘3.2-处理任意格式的文本文件w.pdf‘,
 ‘3.3-python操作办公文件w.pdf‘,
 ‘a.docx‘,
 ‘b.xlsx‘,
 ‘busy.zip‘,
 ‘目录1‘,
 ‘目录2‘,
 ‘绝密文件.pdf‘]
# 查看压缩文件
see = zipfile.ZipFile(‘busy.zip‘,‘r‘)  # 以只读的方式打开文件,并创建对象
see.namelist()
[‘a.docx‘, ‘b.xlsx‘]
see.getinfo(‘a.docx‘)
<ZipInfo filename=‘a.docx‘ compress_type=deflate filemode=‘-rw-rw-rw-‘ file_size=0 compress_size=2>
see.close()
# 复制压缩文件
import shutil
shutil.copy(‘busy.zip‘,‘busy-1.zip‘)
‘busy-1.zip‘
os.listdir()
[‘3.1-管理目录与文件w.pdf‘,
 ‘3.2-处理任意格式的文本文件w.pdf‘,
 ‘3.3-python操作办公文件w.pdf‘,
 ‘a.docx‘,
 ‘b.xlsx‘,
 ‘busy-1.zip‘,
 ‘busy.zip‘,
 ‘目录1‘,
 ‘目录2‘,
 ‘绝密文件.pdf‘]
# 解压压缩文件
busy = zipfile.ZipFile(‘busy-1.zip‘)  # 创建对象
busy.extractall(‘目录1‘)  # 解压到指定目录
busy.close()
os.chdir(‘目录1‘)
os.listdir()
[‘1.txt‘, ‘a.docx‘, ‘b.xlsx‘]

案例:代码备份机

def auto_name():
    pass
def zip_all():
    pass
def zip_by_name():
    pass
import zipfile
import os
def zip_all(from_dir,target_zip):
    """把目录中的每个文件写入zip文件"""
    my_zip = zipfile.ZipFile(target_zip,‘w‘)
    for root,dir,files in os.walk(from_dir):   # 遍历目录内的所有目录和文件,返回列表
        for file in files:                     # 遍历文件
            filename = os.path.join(root,file) # 路径+文件名
            print(filename)
            my_zip.write(filename,compress_type=zipfile.ZIP_DEFLATED) # 写入文件
    my_zip.close()     # 关闭
def auto_name(source_name):
    if source_name:
        new_name = source_name.split(‘-‘)[0] + ‘-‘ + str(int(source_name.split(‘-‘)[1].split(‘.‘)[0])+1) + ‘.zip‘
    return new_name
base_dir = r‘E:迅雷下载‘  # 路径
target_zip = os.path.join(base_dir,auto_name(‘a-1.zip‘))  # 需要新建的压缩文件名
from_dir = os.path.join(base_dir,‘test‘)                  # 需要遍历的目录
zip_all(from_dir,target_zip)
E:迅雷下载	esta-1.txt
E:迅雷下载	esta-11.txt
E:迅雷下载	esta-2.txt
E:迅雷下载	esta-3.txt

以上是关于案例:python实现代码文件备份机的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.6 的备份代码片段

Python文件操作与面向对象

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?

虚拟机数据恢复Linux系统下误删除KVM虚拟机的数据恢复案例

python实现定时自动备份文件到其他主机

Python实现目录文件的全量和增量备份