在Python中重命名文件:WindowsError:[错误2]系统找不到指定的文件

时间:2017-01-29 08:35:02

标签: python excel

我正在尝试重命名文件夹中的文件,并且我不断收到该文件不存在的错误....

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/Paython/Python3/pbx.py   [' xxxxxx.jpg',' xxxx.zip',' xxxx.xlsx',' xxx.pdf',' xxx .MOV',' xx.MOV',' xxxxx_18_12_2016.xlsx',' EZShift_WeeklyPerDayScheduleReport_Export.xlsx',' Test_EZShift_WeeklyPerDayScheduleReport_Export.xlsx']   Traceback(最近一次调用最后一次):     File" C:/Users/sabaja/Desktop/Paython/Python3/pbx.py" ;,第24行,在       os.rename(' EZShift_WeeklyPerDayScheduleReport_Export.xlsx'," EZShift _" + time_srt +" .xlsx")    WindowsError:[错误2]系统找不到指定的文件

使用退出代码1完成处理

2 个答案:

答案 0 :(得分:2)

来自os.listdir的文件名是相对路径os.listdir返回文件名onla);它们将在您当前的工作目录中搜索os.getcwd()(仅因为您命名变量working_dir而不会更改)

您需要os.path.join(working_dir, filename)才能获取绝对路径,以便访问(并重命名)您的文件。

你可以这样做:

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)

答案 1 :(得分:-1)

从错误中找不到文件。请在os.rename()调用中提供完整路径。