Zipfile 不写入数据
Zipfile not writing data
我尝试压缩我创建的日志文件,但没有写入任何内容!
代码:
def del_files():
'''Adapted from answer @ by jterrace'''
dir_to_search = os.path.join(os.getcwd(),'log')
for dirpath, dirnames, filenames in os.walk(dir_to_search):
for file in filenames:
curpath = os.path.join(dirpath, file)
log(curpath)
if curpath != path:
log("Archiving old log files...")
with zipfile.ZipFile("log_old.zip", "w") as ZipFile:
ZipFile.write(curpath)
ZipFile.close()
log("archived")
首先,您将在每次迭代时覆盖输出 zip 文件:
with zipfile.ZipFile("log_old.zip", "w") as ZipFile:
mode "w"
表示创建一个新文件,或者截断一个现有文件。可能您的意思是追加到 zip 文件,在这种情况下,可以使用模式 "a"
打开它进行追加。或者您可以在外部 for 循环之外打开 zip 文件。
您的代码应导致 log_old.zip
包含一个文件 - os.walk()
找到的最后一个文件。
在主循环之外打开存档更好,因为文件只会打开一次,并且会因为上下文管理器而自动关闭 (with
):
with zipfile.ZipFile("log_old.zip", "w") as zf:
dir_to_search = os.path.join(os.getcwd(), 'log')
for dirpath, dirnames, filenames in os.walk(dir_to_search):
for file in filenames:
curpath = os.path.join(dirpath, file)
zf.write(curpath)
我尝试压缩我创建的日志文件,但没有写入任何内容! 代码:
def del_files():
'''Adapted from answer @ by jterrace'''
dir_to_search = os.path.join(os.getcwd(),'log')
for dirpath, dirnames, filenames in os.walk(dir_to_search):
for file in filenames:
curpath = os.path.join(dirpath, file)
log(curpath)
if curpath != path:
log("Archiving old log files...")
with zipfile.ZipFile("log_old.zip", "w") as ZipFile:
ZipFile.write(curpath)
ZipFile.close()
log("archived")
首先,您将在每次迭代时覆盖输出 zip 文件:
with zipfile.ZipFile("log_old.zip", "w") as ZipFile:
mode "w"
表示创建一个新文件,或者截断一个现有文件。可能您的意思是追加到 zip 文件,在这种情况下,可以使用模式 "a"
打开它进行追加。或者您可以在外部 for 循环之外打开 zip 文件。
您的代码应导致 log_old.zip
包含一个文件 - os.walk()
找到的最后一个文件。
在主循环之外打开存档更好,因为文件只会打开一次,并且会因为上下文管理器而自动关闭 (with
):
with zipfile.ZipFile("log_old.zip", "w") as zf:
dir_to_search = os.path.join(os.getcwd(), 'log')
for dirpath, dirnames, filenames in os.walk(dir_to_search):
for file in filenames:
curpath = os.path.join(dirpath, file)
zf.write(curpath)