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
相关产品推荐
相关产品推荐

