2014-10-10 8 views
0

내 Mac의 디렉토리에 여러 개의 비디오 파일이 있습니다. 모든 파일 이름에는 제거하려는 파일 이름의 특정 문자열이 있지만 나머지 파일 이름은 그대로 유지하려고합니다. 터미널에서이 파이썬 스크립트를 실행하고 있습니다.파이썬 파일 이름 변경

이 구문이 있지만 작동하지 않는 것 같습니다. 다음을 사용하는 것이 실용적인가요? 이런 종류의 일을하는 가장 좋은 방법은 간단 할 것 같습니다. 그래서 나는 그것이 효과가 있다고 생각하지 않습니다.

from os import rename, listdir 

text = "Some text I want to remove from file name" 
files = listdir("/Users/Admin/Desktop/Dir_of_videos/") 

for x in files: 
    if text in files: 
     os.rename(files, files.replace(text, "")) 

답변

1

문제는이 일을해야

디렉토리를 앞두고 붙이는 경로없이 디렉토리의 파일 만 반환, 당신은 listdir을 사용하는 경우는 기본적으로 불완전한 경로를 얻을 수 있습니다 :

import os 

in_dir = './test' 
remove = 'hello' 

paths = [os.path.join(in_dir,file) for file in os.listdir(in_dir) if remove in file] 

for file in paths: 
    os.rename(file, file.replace(remove, "")) 
+0

그래, 그 트릭을했다. 감사합니다 :) 당신은 "파일"을 설명 할 수 있습니까? 말 그대로 스크립트에서이 "파일"을 사용한다고 말하고 있습니까? –

+0

'file'은 여기에 있습니다. 예를 들어'os.listdir ('./ test')'를 할 때 'file'은'planet.png '또는'world.png '가됩니다. – Sebastian

+0

You 'print (paths)'를 삽입하여 경로가 어떻게 보이는지 확인하고'os.listdir ('./ test')' – Sebastian