2013-07-18 2 views
0

소스 폴더 내의 영숫자가 아닌 문자를 제거하고 영숫자가 아닌 문자의 이름을이 코드를 사용하지 않고 버전으로 변경하려고합니다. 그러나 나는이 오류 모듈을 실행할 때마다,파일 이름에서 영숫자가 아닌 문자 제거 및 파이썬에서 이름 바꾸기

Traceback (most recent call last): 
    File "C:\tempstore\Filescan1", line 18, in <module> 
    os.rename(filename,newfilename) 
WindowsError: [Error 32] The process cannot access the file because it is being used by another process 

제발 도와주세요?

os.chdir("C:\\tempstore\\source") 
file_list = glob.glob("*.mpg*") 
for filename in file_list: 
    if re.search('[^A-Za-z0-9._ ]+',filename,re.U) is not None: 
     print filename + " <--Dodgy File" 
     print re.sub('[^0-9a-zA-Z+_. ]+','-',filename)+ " <--Fixed File" 
     newfilename = re.sub('[^0-9a-zA-Z+_. ]+','-',filename) 
     os.rename(filename,newfilename) 
    elif re.search('[^A-Za-z0-9._ ]+',filename,re.U) is None: 
     print filename +" <-- Normal File" 
     unchanged_list = re.sub('[^A-Za-z0-9._ ]+','_',filename) 
     print unchanged_list 
+0

나는 가혹한 것처럼 들리고 싶지 않지만 들여 쓰기에 약간의 노력을 기울이려고했지만, 그것은 완전히 엉망이었습니다. 이것이 지금 당장 의미가 있는지 보시거나, 최선을 다해 고쳐 주시길 바랍니다. –

+0

죄송합니다.이 글을 처음 게시 할 때 약간 혼란 스럽습니다. – user2595340

+0

'filename'과'newfilename'을 출력하고 [이 프로세스를 사용하는 프로세스 파일] (http://stackoverflow.com/a/1856857/4279) – jfs

답변

0

해결! 오류가 발생하는 이유는 Windows에서 열려있는 디렉터리의 파일을 편집 할 수 없으며 내 프로그램에서 파일을 편집하기 위해 디렉터리를 열었 기 때문입니다. Catch-22 정말, 열려있는 디렉토리의 파일은 편집 할 수 없지만 파일을 편집하려면 디렉토리를 열어야합니다. shutil.copy를 사용하여 파일을 옮긴 다음 이름을 바꾸면 제대로 작동합니다. 멍청한 행동에 사과드립니다!

0

바이러스 백신 소프트웨어를 끄거나 "온 액세스"검색을 Off로 설정하십시오.

print re.sub('[^0-9a-zA-Z+_. ]+','-',filename)+ " <--Fixed File" 
    newfilename = re.sub('[^0-9a-zA-Z+_. ]+','-',filename) 

읽어야합니다 : 나는 또한 모두 밖으로 인쇄하고, 이름 변경, 즉 것을 사용하여 다음 newfilename을 생성의 re.sub를 사용하는 것이 좋습니다 것

newfilename = re.sub('[^0-9a-zA-Z+_. ]+','-',filename) 
    print 'Renaming to:', newfilename 

와의 마지막 두 줄을 제거하기 당신의 예.

+0

내 파이썬 (당신이 짐작할 수 있습니다) 훌륭하지 않습니다 어제까지 정규 표현식을 사용하지 않았다면, 당신이 무슨 뜻인지 예를 들어 주시기 바랍니다 ? – user2595340

+0

위의 답변을 수정했습니다. –

+0

나는 이것을 시도했지만 여전히 바이러스 백신이 꺼져 있다는 오류 메시지가 나타납니다. 이것은 정말로 초조하게되고있다! – user2595340

관련 문제