批量重命名(num)_pure_hm.mp4文件时触发FileNotFoundError的原因
问题原因分析
核心问题:未使用文件完整路径
os.listdir(path_video)返回的仅仅是目标文件夹内的文件名(如443_pure_hm.mp4),而非文件的完整绝对路径。你的脚本运行时的工作目录是/home(从报错路径/home/Rename.py可判断),但实际视频文件存储在/mnt/gazemap_videos目录下。直接调用os.rename(filename, ...)时,Python会在当前工作目录查找该文件,自然找不到目标文件,因此抛出FileNotFoundError。与参考方案的差异:
你参考的方案要么是在目标目录下直接运行脚本,要么提前切换了工作目录,所以直接使用文件名就能找到文件;但你的脚本没有处理路径拼接,导致文件路径不匹配。
修复方案
方案1:拼接完整文件路径
import os path_initial = '/mnt' path_video = os.path.join(path_initial,'gazemap_videos') for filename in os.listdir(path_video): # 构造原文件的完整路径 old_file_path = os.path.join(path_video, filename) # 构造新文件的完整路径 new_filename = filename.replace('_pure_hm', '') new_file_path = os.path.join(path_video, new_filename) os.rename(old_file_path, new_file_path)
方案2:先切换工作目录到目标文件夹
import os path_initial = '/mnt' path_video = os.path.join(path_initial,'gazemap_videos') # 切换工作目录到视频文件夹 os.chdir(path_video) for filename in os.listdir(): os.rename(filename, filename.replace('_pure_hm', ''))
内容的提问来源于stack exchange,提问作者dtr43
相关产品推荐
相关产品推荐

