Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中压缩后删除文件_Python_Python 3.x_Zip - Fatal编程技术网

在Python中压缩后删除文件

在Python中压缩后删除文件,python,python-3.x,zip,Python,Python 3.x,Zip,我编写了一个小脚本,在其中我可以浏览以特定扩展名结尾的文件,并将它们压缩到一个文件夹中。对于每次迭代,我都会删除这些文件,因为我不希望它们留在那里。当我执行os.remove()时,它会将它们发送到垃圾箱 出于好奇,是否有一种方法可以将文件移动到zip中,而不是创建副本?这将消除删除文件的需要 import os import time from zipfile import * def main(): timestamp = int(time.time()) unixTime

我编写了一个小脚本,在其中我可以浏览以特定扩展名结尾的文件,并将它们压缩到一个文件夹中。对于每次迭代,我都会删除这些文件,因为我不希望它们留在那里。当我执行os.remove()时,它会将它们发送到垃圾箱

出于好奇,是否有一种方法可以将文件移动到zip中,而不是创建副本?这将消除删除文件的需要

import os
import time
from zipfile import *

def main():
    timestamp = int(time.time())
    unixTime = str(timestamp)

    file_name = "a_" + unixtime + ".zip"
    zip_archive = ZipFile(file_name, "w", ZIP_DEFLATED)

    for file in os.listdir(/mypath):
        if file.endswith(".txt"):
            zip_archive.write(file)
            os.remove(file)

    zip_archive.close()
@芒奇豪森 这些文件是由一个.exe(用C++编写)生成的,我通过python中的subprocess.check_输出方法调用它

@处理
我确实看到了这一点,并将实施更改以消除close()。我也可以删除临时文件夹。谢谢你的建议。

不太好,不。如果你想避免删除文件,也许你可以先避免写它们。这些文件是怎么到那里的?首先,您可以控制写入这些文件吗?zipfile模块允许将内存中的字节压缩到zipfile中,从而避免了对磁盘上文件的需要。是一个上下文管理器,可以与
一起使用
(消除
close()
)标题并不真正反映您的问题,顺便说一句。您也可以在从中选择文件后删除。