2017-11-13 8 views
0

나는 원호지도에 파일 이름이 image_name = (1-3#s)_(10#'s).jpg 인 사진 파일이 있습니다. 예를 들어 :밑줄 문자 뒤의 문자 제거

1_1z1z1z1z1z.jpg 
599_iiiiiiiiii.jpg 

나는 밑줄 (_)을 따라 6 개 개의 문자를 제거하고 (.jpg)를 제거합니다. 예를 들어, 결과는 다음과 같습니다

1_1z1z 
599_iiii 

image_name.strip('jpg') 간단한 표현으로 파일 확장자를 제거,하지만 난과 두 번째 규칙을 수용 할 수 있도록 고급 섹션에서 결합 된 문자열 명령을 만드는 방법을 알아낼 수 없습니다 잘.

답변

0

re.sub을 사용하여 _ 뒤에 처음 6 자 (임의의 6 자의 문자는 .{6})와 일치시키고 모두 제거 할 수 있습니다. 이어서 같은 결과로부터 고정 .jpg 제거 : str.strip('jpg')하지jpg 확장을 제거 할 수있는 안전한 (또는 정확한) 방법

>>> name = '123_1a2b3c4d5e.jpg' 
>>> re.sub('_.{6}', '_', name).replace('.jpg', '') 
'123_4d5e' 

참고있다. str.strip의 모든 앞뒤에있는 인스턴스을 제거합니다. 예 :

>>> 'jppj-test-jpg'.strip('jpg') 
'-test-'