2016-09-21 3 views
0

나는 이메일로 보낸 날짜의 이름을 바꿀 스크립트를 만들려고한다. (이 부분은 스크립트의 첫 부분이지만이 부분은 중요하지 않다.) 다음 이름을 바꾼다. 그것을 'Complete'폴더로 정렬하십시오. 이것은 내 코드os.rename returned winerror 2

편집 모습입니다 - 나는 상단에 길 가져온 모든 물건을 가지고 있고 내가 그것을 보여 didnt는하지만, 당신이보고 싶은 경우 난 그냥 물어 내가 바로 물건을 가져온 가정

dir5 = "C:\\Users\\Michael D\\Documents\\Test\\AmLit" 
dir6 = "C:\\Users\\Michael D\\Documents\\Test\\History" 
dir7 = "C:\\Users\\Michael D\\Documents\\Test\\MultiLit" 
dir8 = "C:\\Users\\Michael D\\Documents\\Test\\Physics" 
dir5_final = "C:\\Users\\Michael D\\Documents\\TestMove\\AmLit" 
dir6_final = "C:\\Users\\Michael D\\Documents\\TestMove\\History" 
dir7_final = "C:\\Users\\Michael D\\Documents\\TestMove\\MultiLit" 
dir8_final = "C:\\Users\\Michael D\\Documents\\TestMove\\Physics" 


now = datetime.datetime.now() 
now1 = (str(now.day) + '/' + str(now.month) + '/' + str(now.year)) 

dir5_files = os.listdir(dir5) 
dir6_files = os.listdir(dir6) 
dir7_files = os.listdir(dir7) 
dir8_files = os.listdir(dir8) 

for f in dir5_files: 
    if (f.startswith("A") or f.startswith("a")): 
     os.rename(f, now1 + " " + f) 

하지만 난이 오류 내가 잘못 무엇인지에

RESTART: C:/Users/Michael D/Documents/Coding/Schoolwork Email/Email Sender Beta 1.7.21.9.16.py 
Traceback (most recent call last): 
    File "C:/Users/Michael D/Documents/Coding/Schoolwork Email/Email Sender Beta 1.7.21.9.16.py", line 148, in <module> 
    os.rename(f, now1 + " " + f) 
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'A Test.txt' -> '21/9/2016 A Test.txt' 

어떤 생각을 점점 계속?

+0

'os.listdir()'에서 전체 경로를 얻지 못하면 작업 디렉토리를 변경하거나'rename()'에 대한 전체 경로를 지정하십시오. –

답변

1

2 오류 :

  1. 당신은 현재 디렉토리

  2. 에없는 당신은 이름에서 슬래시을 가질 수 없습니다. 파일 시스템은 경로 부분을 분리하는 데 (교대로) 사용되므로 허용하지 않습니다.

첫째, 밑줄로 직접 날짜를 생성합니다

now1 = (str(now.day) + '_' + str(now.month) + '_' + str(now.year)) 

그런

os.rename(os.path.join(dir5,f), os.path.join(dir5,now1.replace("/","_") + " " + f)) 

A Test.txt이,731,414로 이름이 변경 될 수

os.rename(f, now1 + " " + f) 

으로 교체을 지정한 디렉토리에 복사하십시오.

+0

여전히 동일한 오류가 반환됩니다 – Kiwi0

+0

내 편집을 참조하십시오. 현재의 dir PLUS 슬래쉬의 문제점 –

+0

그는'os.path.join'을 사용하여 디렉토리 접두어를 파일 이름에 추가해야합니다. – Barmar