1

我正在尝试编写一个 python 脚本,它将在“备份”目录中创建一个 ZIP,该目录包含该目录的所有内容。

我的文件结构:

C:/
    Users/
        myuser/
            backups/
                blah.gif
                config.xml
                etc.

所以我希望脚本创建一个C:/Users/myuser/backups/mybackup.zip包含backups/目录的所有内容(blah.gif,config.xml等)。

这是我正在使用的代码:

backupDir = "C:/Users/myuser/backups/"
backupFile = "mybackup.zip"
file = zipfile.ZipFile(backupDir + backupFile, "w")
for name in glob.glob(backupDir):
    print "Found " + name
    file.write(name, os.path.basename(name), zipfile.ZIP_DEFLATED)
file.close()

当我运行它时,它会生成一个C:/Users/myuser/backups/mybackup.zip文件,但是当我解压缩它时,它是空的。我会误入歧途吗?提前致谢!

4

1 回答 1

3

glob 期望模式匹配。我更喜欢使用 os.listdir() 因为它更容易使用。

backupDir = "C:/Users/myuser/backups/"
backupFile = "mybackup.zip"
file = zipfile.ZipFile(backupDir + backupFile, "w")
for name in os.listdir(backupDir):
    if name == backupFile:
        continue
    fullname = backupDir + name
    print "Found " + name
    file.write(fullname, os.path.basename(name), zipfile.ZIP_DEFLATED)
file.close()
于 2012-08-14T22:52:04.233 回答