2016-07-29 4 views
2

저는 파이썬에서 완전한 초보자입니다. 이름에 날짜가 포함 된 파일을 이름을 바꿔야합니다. 차라리 다음 전면, , 또는 바로을 왼쪽으로 날짜를 시작하도록하려는파이썬을 사용하여 여러 파일의 이름을 바꾸는 방법은 무엇입니까?

  • front 7.25.16
  • left 7.25.16
  • right 7.25.16

: 이름 모두는 다음과 같다 따라서 front 7.25.167.25.16 front이됩니다.

나는 정규 표현식os.walk를 사용하여 시도하고 난 둘 다 문제로 실행했다. 지금은 단지 파일 이름을 인쇄하려고 시도하고 있습니다. os.walk이 작동 중입니다. 지금 내 코드는 다음과 같습니다 :

import re, shutil, os 

K = re.compile(r"(\d+.\d+.\d+)") 
RE_Date = K.search("front 7.25.16") 

for root, dirs, filenames in os.walk("path"): 
    for filename in filenames: 
     print ("the filename is: " + filename) 
    print ("") 

모든 조언을 크게 주시면 감사하겠습니다.

+0

가능한 중복 http://stackoverflow.com/ questions/2759067/rename-files-in-python) –

+2

"문제가 생겼습니다"를 확장해야합니다. 구체적으로 작동하지 않는 것은 무엇입니까? –

+0

'os.walk'로 시작하는 것은'root, dirs, files'의 세개를 반환합니다 ... –

답변

1

필요에 따라 파일의 이름을 바꾸려면이 예제를 선택하십시오.

import os 

filenames = ["front 7.25.16.jpg", "left 7.25.16.jpg", "right 7.25.16.jpg"] 

for file_name in filenames: 
    x = file_name.split(' ')[0] 
    y = file_name.split(' ')[1] 
    new_name = '{} {}{}'.format(os.path.splitext(y)[0], x, os.path.splitext(y)[-1]) 
    print new_name 

출력 :

코드에서
7.25.16 front.jpg 
7.25.16 left.jpg 
7.25.16 right.jpg 

당신의 이름 바꾸기 파일

에 대한 os.rename을 사용할 수 있습니다
import os 

for root, dirs, filenames in os.walk("path"): 
    for file_name in filenames: 
     x = file_name.split(' ')[0] 
     y = file_name.split(' ')[1] 
     new_name = '{} {}{}'.format(os.path.splitext(y)[0], x, os.path.splitext(y)[-1]) 
     file_path = os.path.join(root, file_name) 
     new_path = os.path.join(root, new_name) 
     os.rename(file_name, new_path) 
[파이썬에서 파일 이름 바꾸기] (의
+0

나는 그것을 검사 할 수 없으므로 지금 당장 컴퓨터에서 멀리 떨어져 있습니다. 그러나 감사합니다. 그들이 모두 .jpg 인 경우 문제가 있습니까? – AutomateMyJob

관련 문제