2017-01-29 14 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

プロセスos.listdirから1つの

答えて

2

あなたのファイル名が相対パスos.listdir返すファイル名のonla)が終了コードで終了。彼らはあなたのあなたがアクセスするために絶対パスを取得(名前の変更)するos.path.join(working_dir, filename)に必要

(あなたが変数working_dirに名前を付けるので、それだけで変更されません)os.getcwd()であるあなたの現在の作業ディレクトリで検索されますファイル。ファイルが見つからないと思われるエラーから

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

を解決しました...私はプリントの出力を追加しました –

関連する問題