Dean of NITSC 2024-07-11 11:11 采纳率: 25%
浏览 6

使用 python 复制文件后文件损坏,如何修复?

使用的代码如下 :

import os
import shutil

def backup_files(src_dir, dest_dir):
    for root, dirs, files in os.walk(src_dir):
        for file in files:
            src_file = os.path.join(root, file)
            dest_file = os.path.join(dest_dir, file)
            shutil.copy2(src_file, dest_file)

src_dir0 = 'A:\\AI\\output'
src_dir1 = 'A:\\AI\\prompt'
dest_dir0 = 'D:\\AI 备份\\output'
dest_dir1 = 'D:\\AI 备份\\prompt'

if not os.path.exists(dest_dir0):
    os.makedirs(dest_dir0)

if not os.path.exists(dest_dir1):
    os.makedirs(dest_dir1)

backup_files(src_dir0, dest_dir0)
backup_files(src_dir1, dest_dir1)
print("备份完成!")

运行后,A:\AI\output 中图片占用的磁盘空间大小保持不变,而且还能从父文件夹图标中看到一些图片的缩略图(我猜是 Windows 的缩略图缓存没有被删除),然后用 "照片 "打开时,会提示 "似乎不支持此文件格式"。我不知道如何解决这个问题,即使重启电脑也不行。我该如何解决这个问题?

我试过重启电脑和检查代码,都没有错误。希望能有专业人士前来提供帮助,万分感谢。

img


img


img


img


img


img


img

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-07-11 11:20
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您好!看起来您在使用 Python 进行文件复制时遇到了一些问题。根据您提供的代码和描述,我有几个建议,希望能帮助您解决这个问题。

    1. 检查文件路径:确保源路径 src_dir 和目标路径 dest_dir 是正确的,并且没有包含任何无效字符或路径错误。

    2. 使用异常处理:在您的代码中添加异常处理,这样如果复制过程中出现任何问题,您可以获得错误信息,帮助您诊断问题。

    3. 检查文件权限:确保您有足够的权限来读取源文件和写入目标文件夹。

    4. 使用不同的复制方法:尽管您已经使用了 shutil.copy2,这通常用于复制文件的元数据,但有时可能需要尝试其他方法,比如 shutil.copyshutil.copyfile

    5. 检查磁盘空间:确保目标磁盘有足够的空间来存储复制的文件。

    6. 检查文件损坏:如果源文件已经损坏,复制操作也会传递损坏的文件。尝试打开源文件以确保它们是完好无损的。

    7. 使用文件校验:复制完成后,您可以使用文件哈希(如 MD5)来比较源文件和目标文件是否完全相同。

    8. 关闭文件:确保在复制文件后关闭所有打开的文件句柄。

    9. 检查系统错误:有时操作系统的错误或问题可能导致文件复制失败。查看系统日志可能会提供一些线索。

    10. 使用第三方库:考虑使用第三方库,如 pyfilesystem2,它提供了一种更高级的方式来处理文件和目录。

    关于您上传的图片文件,我无法直接查看或分析它们,但您可以使用一些图像处理软件或工具来检查这些图片文件是否损坏。如果文件损坏,您可能需要从原始源重新获取它们。

    如果上述建议都不能解决您的问题,您可能需要更详细地检查复制过程中的每一步,或者考虑是否有其他系统级的问题影响了文件的复制。

    最后,关于您提到的参考链接,由于我不能提供外部链接,但您可以搜索一些关于 Python 文件复制、文件损坏修复和文件校验的教程或文章来获取更多信息。

    希望这些建议对您有所帮助!如果您有其他问题或需要进一步的帮助,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 7月11日
  • 创建了问题 7月11日

悬赏问题

  • ¥15 更换了一个新的win10系统,再下载VS时碰到的问题,是C++组件的?
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线
  • ¥20 无法创建新的堆栈防护界面
  • ¥15 sessionStorage在vue中的用法
  • ¥15 wordpress更换域名后用户图片头像不显示
  • ¥15 如何在ubunto上安装CEF (Chromium Embedded Framework),并且基于qt实现打开一个web
  • ¥30 AD9854 为什么输出波形幅度受限,AI机器人勿扰
  • ¥15 如何在ubunto上安装CEF (Chromium Embedded Framework