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

要求:

假定你正在做一个项目,它的文件保存在 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()

分离文件名与扩展名

你可能感兴趣的:(python备份远程文件夹文件到本地_Python项目:将一个文件夹备份到一个 ZIP 文件...)