首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测shutil.copytree是否完成复制?

如何检测shutil.copytree是否完成复制?
EN

Stack Overflow用户
提问于 2021-06-15 21:26:32
回答 1查看 29关注 0票数 3

我在archlinux上使用python 3.8。我使用shutil.copytree将文件夹复制到U盘中。当我在复制后签入usb时,文件夹被正确复制,但我看到我的usb闪存盘上有一个滴答作响的led指示灯,它仍然在写入。如果我在滴答结束之前弹出我的usb闪存盘,然后重新连接它,我看到文件夹并没有完全复制。意味着我的操作系统(archlinux)认为复制已经完成,但事实并非如此。有什么想法吗?

代码语言:javascript
运行
复制
def copytree(self,src, dst):
    """
        This method copies an entire folder recusively from the src to dst path
    """

    for item in os.listdir(src):
        s = os.path.join(src, item)
        d = os.path.join(dst, item)
        if os.path.isdir(s):
            shutil.copytree(s, d)
        else:
            shutil.copy2(s, d)

这个调用之后的代码会继续运行,即使它没有完成复制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-15 21:30:05

复制似乎在逻辑上已完成,但尚未完全写入物理USB闪存驱动器。也就是说,您的操作系统已经缓存了副本中的一些数据,并将在以后将其写入驱动器,但一定要在卸载驱动器之前。

要检查是否是这种情况,您可以检查(在Python中或通过其他程序)在代码移过shutil.copytree之后是否已完成复制。如果是这样,那么几乎可以肯定的是,USB闪存驱动器没有安全地弹出。

您应该能够通过在移除USB闪存驱动器之前卸载(即安全弹出)USB闪存驱动器来解决此问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67987178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档