python备份远程文件夹文件到本地_Python项目:将一个文件夹备份到一个 ZIP 文件...

该博客介绍了一个Python脚本`backupToZip.py`,用于自动创建文件夹的ZIP备份。脚本首先确定ZIP文件的命名,然后检查文件是否存在,避免重复。接着,它遍历指定文件夹及其子文件夹,将所有内容写入ZIP文件,同时跳过已有的ZIP文件。通过运行这个脚本,可以方便地为项目文件夹创建带有递增编号的ZIP备份,避免手动操作的繁琐和错误。
摘要由CSDN通过智能技术生成

要求:

假定你正在做一个项目,它的文件保存在 C:\AlsPythonBook 文件夹中。你担心工作 会丢失,所以希望为整个文件夹创建一个 ZIP 文件,作为“快照”。你希望保存不同的版 本,希望 ZIP 文件的文件名每次创建时都有所变化。例如 AlsPythonBook_1.zip、 AlsPythonBook_2.zip、AlsPythonBook_3.zip,等等。你可以手工完成,但这有点烦人, 而且可能不小心弄错 ZIP 文件的编号。运行一个程序来完成这个烦人的任务会简单得多。

针对这个项目,打开一个新的文件编辑器窗口,将它保存为 backupToZip.py。

#! python3

#backupToZip.py - 将一个文件夹备份到一个ZIP文件

import zipfile , os

#弄清ZIP文件的名字

def backupToZip(folder):

folder = os.path.abspath(folder) #返回参数的绝对路径的字符串

number = 1

while True:

zipFilename = os.path.basename(folder) + '_' +str(number) + '.zip'

#返回一个字符串包含folder参数中最后一个斜杠之前的所有内容

if not os.path.exists(zipFilename):

#如果zipFilename参数所指的文件或文件夹存在,将返回True,否则将返回False

break

number = number+1

#创建新ZIP文件

print('creating %s...' %(zipFilename))

backupZip =zipfile.ZipFile(zipFilename,'w')

#遍历目录树并添加到ZIP文件

for foldername,subfolders,filenames in os.walk(folder):

print('Adding files in %s...' % (foldername))

#将当前文件夹添加到ZIP文件中

backupZip.write(foldername)

#将此文件夹中的所有文件添加到ZIP文件中

for filename in filenames:

if filename.startswith(folder) and filename.endswith('.zip'):

continue

backupZip.write(os.path.join(foldername, filename))

backupZip.close()

print('Done.')

backupToZip('D:\\练习\\日期文件')

复制代码

os.path模块功能:

方法

功能

os.path.abspath(path)

返回绝对路径

os.path.split(path)

将path分割成目录和文件名二元组返回

os.path.dirname(path)

返回path的目录。其实就是os.path.split(path)的第一个元素

os.path.basename(path)

返回path最后的文件名

os.path.exists(path)

如果path存在,返回True;如果path不存在,返回False

os.path.isabs(path)

如果path是绝对路径,返回True

os.path.isfile(path)

如果path是一个存在的文件,返回True。否则返回False

os.path.isdir(path)

如果path是一个存在的目录,则返回True。否则返回False

os.path.getatime(path

)返回path所指向的文件或者目录的最后存取时间

os.path.getmtime(path)

返回path所指向的文件或者目录的最后修改时间

os.path.getctime(path)

返回path所指向的文件或者目录的创建时间

os.path.getsize(name)

获得文件大小,如果name是目录返回0L

os.path.join(path1[, path2[, …]])

将多个路径组合后返回,第一个绝对路径之前的参数将被忽略.

os.path.splitext()

分离文件名与扩展名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值