You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python IDLE执行文件移动代码后TXT文件丢失,寻求恢复方案

问题分析与解决建议

文件恢复方法

  • 立即停止对存储.txt files文件的磁盘进行任何写入操作,避免覆盖可恢复的原始数据。
  • 使用数据恢复工具(如Recuva、Disk Drill)扫描对应磁盘,这类工具可检测被覆盖的文件碎片并尝试恢复。由于多次移动操作会让后续txt文件覆盖之前的,最后留存的.txt files是最后一个被移动的文件,其他文件需依赖数据恢复工具找回。
  • 快速检查系统回收站:虽然shutil.move操作不会将文件移入回收站,但可简单排除该可能性。

代码修正方案

你的代码存在三个核心问题:路径单引号冲突、未确保目标路径为文件夹、未使用文件完整路径,修正后的代码如下:

import os 
import shutil

# 改用双引号包裹路径,解决路径中含单引号的语法问题
folder = "C:\\Users\\PROJECTPLUS\\Desktop\\Tolu's\\TOLU'S\\Personal\\.py" 
destination = "C:\\Users\\User\\Desktop\\Tolu's\\TOLU'S\\Personal\\.py\\txt files"

# 提前创建目标文件夹,避免因文件夹不存在导致文件被重命名为目标路径名
if not os.path.exists(destination):
    os.makedirs(destination)

for root, directories, files in os.walk(folder): 
    for file in files: 
        if file.endswith('.txt'):
            # 拼接文件的完整绝对路径,确保shutil能找到源文件
            source_full_path = os.path.join(root, file)
            # 拼接目标文件的完整路径,确保文件被移动到目标文件夹内
            target_full_path = os.path.join(destination, file)
            shutil.move(source_full_path, target_full_path) 
            print(f'文件 {file} 已移动到 {destination}')

关键修正点说明

  • 路径字符串:用双引号包裹含单引号的路径,避免语法错误;也可使用单引号加转义符(如'Tolu\'s')。
  • 目标文件夹检查:通过os.makedirs确保目标文件夹存在,防止shutil.move将目标路径识别为文件名。
  • 完整路径使用:os.walk返回的file只是文件名,必须拼接root得到完整路径,否则shutil会在当前工作目录查找文件,可能引发错误或执行异常。

内容的提问来源于stack exchange,提问作者Tolu A-Daniels

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:52:13