2017-01-29 165 views
1

我想重命名文件夾中的文件,並且一直收到文件不存在的錯誤....在Python中重命名文件:WindowsError:[錯誤2]系統找不到指定的文件

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 (most recent call last): File "C:/Users/sabaja/Desktop/Paython/Python3/pbx.py", line 24, in os.rename('EZShift_WeeklyPerDayScheduleReport_Export.xlsx', "EZShift_" + time_srt + ".xlsx") WindowsError: [Error 2] The system cannot find the file specified

過程,退出代碼完成1

回答

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) 
+0

這確實解決了重命名問題 –

-1

從它似乎找不到文件的錯誤。請在os.rename()調用中提供完整路徑。

+0

它被發現......我添加了print –

相關問題