Python。文件移动/复制后如何删除?

问题描述 投票:0回答:2

我想要将 source_dir 中的 zip 复制/移动到 dst 位置。 zip 被复制到 dist 路径。但是,如何删除 source_dir 文件?我尝试了 move 选项,该选项删除了 source_dir 文件,但如果存在具有现有名称的 zip,则 move 命令无法移动 zip。复制方法有效,只是覆盖它,但在 source_dir 中留下一个 zip。 下面是我的代码,它复制成功,但 zip 文件没有从 source_dir 中删除。我做错了什么?

  def Movezips(self, email):
        time.sleep(2)
        print("starting moving")
        source_dir = 'C:/Download'+email+'/'
        dst = 'E:/BackUpZip/'+email
        Path(dst).mkdir(parents=True, exist_ok=True)
        dst=dst+'/'
        files = glob.iglob(os.path.join(source_dir, "*.zip"))
        for file in files:
             if os.path.isfile(file):
                shutil.copy(file, dst)

        for file in files:
            if os.path.isfile(file):
                shutil.rmtree(file)
python shutil
2个回答
0
投票

您可以使用 os 而不是 Shutil 来删除文件夹和文件

要删除文件,您可以使用

os.remove("filename")

要删除文件夹,您可以使用

os.rmdir("foldername")

或者使用shutil你可以尝试

'shutil.move(file, dst, copy_function=copy)'

移动的默认

copy_function
copy2
,但正如你所说,
copy
对你有用,这也许也有用


0
投票

我设法解决了我遇到的问题。最后简单地删除了多余的代码。

files = glob.iglob(os.path.join(source_dir, "*.zip"))
        for file in files:
             if os.path.isfile(file):
                shutil.copy(file, dst)
                os.remove(file)
© www.soinside.com 2019 - 2024. All rights reserved.