在Python中重命名文件:WindowsError:系统找不到指定的文件
我正在尝试重命名文件夹中的文件,我不断收到文件不存在的错误….
import os import time from os.path import isfile, join working_dir = ('C:/Users/XXXXX/Desktop') only_file = [f for f in os.listdir(working_dir) if os.path.isfile(os.path.join(working_dir, f))] print only_file time_srt = time.strftime("%d_%m_%Y") if 'EZShift_WeeklyPerDayScheduleReport_Export.xlsx' in only_file: os.rename('EZShift_WeeklyPerDayScheduleReport_Export.xlsx', "EZShift_" + time_srt + ".xlsx")
C:\ Python27 \ python.exe C:/Users/xxxxxx/Desktop/Python/Python3/pbx.py ['xxxxxx.jpg','xxxx.zip','xxxx.xlsx','xxx.pdf','追踪(最近的最后一次呼叫):文件“C:/ Users / sabaja / Desktop / Paython / XBM”,“ ( 错误2)系统找不到指定的文件
处理完成退出代码1
os.listdir
中的文件名是相对path ( os.listdir
返回文件名onla); 他们将会在你当前的工作目录中被search到,这个目录是os.getcwd()
(不会因为你命名variablesworking_dir
而被改变)
你需要os.path.join(working_dir, filename)
来获取绝对path ,以便访问(和重命名)你的文件。
你可以做这样的事情:
import os.path if 'EZShift_WeeklyPerDayScheduleReport_Export.xlsx' in only_file: old_path = os.path.join(working_dir, "EZShift_WeeklyPerDayScheduleReport_Export.xlsx") new_path = os.path.join(working_dir, "EZShift_" + time_srt + ".xlsx") os.rename(old_path, new_path)
从错误似乎没有find文件。 请在os.rename()调用中提供完整path。