2012-11-06 2 views
0

내가 같은 값이 포함 된 파일 이름 이름을 파이썬을 사용하려고에서 파일 이름을 이름 바꾸기 : 나는 filename.csv 할 파일의 이름을 변경하려는 ~test1~test2~filename.csv추출 값/파이썬

합니다. 첫 번째 두 단어에 대한 구분 기호 인 물결표는 필자의 최종 파일 이름에 해당 단어를 넣지 않습니다. 이 단어들은 변수입니다. 어떤 도움을 주시면 감사하겠습니다. 감사!

+0

나는 파이썬에 비교적 새로운 오전 그렇게하려고 추출을 위해 정규식, 스플릿/조인트를 배웁니다. 나는 직선 파일 이름의 이름을 바꿀 수 있지만, 필요한 패턴을 추출하기 위해 패턴/문자 일관성을 기반으로 파일 이름을 추출하려고합니다. – user1801715

+0

나는 .rename과 함께 glob을 만들었지 만 와일드 카드는 고려하지 않았다. – user1801715

+1

대개 자신이 작성한 질문에 해당 정보를 포함 시키십시오. 대개 정확한 코드를 입력하십시오. 그것은 당신이 질문을 게시하기 전에 자신의 시간을 보냈다는 것을 사람들에게 보여 주며, 또한 당신에게 문제 나 혼란의 근원을 찾을 수있는 출발점을 제공합니다. 그냥 친절한 팁. – yarian

답변

1

단어가 각 파일 이름에 따라 변경되므로 패턴과 일치하는 파일을 디렉토리에서 검색하는 것이 가장 좋습니다. glob로 해결됩니다.

. 
├── ~a~b~c.csv 
├── file.csv 
├── ~foo~bar~f1.csv 
└── hello.txt 

다음이 실행 :이 같은 디렉토리가있는 경우

import os, glob 
for f in glob.glob('~*~*~*.csv'): 
    os.rename(f,f.split('~')[-1]) 

당신에게 줄 것이다 :

. 
├── c.csv 
├── f1.csv 
├── file.csv 
└── hello.txt 
+0

좋은 대답. 내 제안에 비해 훨씬 일반적인. –

+0

정말 대단히 감사합니다 ... 정말 고마워요! – user1801715

1
import os 

myfilename = "~test1~test2~filename.csv" 

for filename in os.listdir("."): 
    if filename == myfilename: 
     myfilename_new = myfilename.split("~")[-1] 
     os.rename(filename, myfilename_new) 

원래 파일 ~test1~test2~filename.csv은이 python 스크립트가 실행되는 "현재/같은 디렉토리"에 있다고 가정합니다.

희망이 있으시면 학습 여정에 도움이 될 것입니다.

Python에 오신 것을 환영합니다!

+0

매우 도움이, 당신의 assitance에 대단히 감사합니다 – user1801715