2016-08-23 3 views
-2

자막 파일 (.srt)의 이름을 해당 에피소드에 해당하는 비디오 파일의 이름으로 바꾸려면 파이썬 스크립트를 만들려고합니다. 따라서 VLC에서 열면 자막이 이미로드되어 있습니다.파이썬 필터링 문자열

지금까지 비디오에서 모든 파일 이름을 얻는 데 성공했으며 두 개의 개별 목록에있는 문자열로 잠급니다. 이제 어떻게 든 에피소드 1의 비디오 문자열을 동일한 에피소드에 해당하는 자막과 페어링해야합니다.

나는 다양한 방법으로 시도했지만 항상 규칙적인 패턴으로 시도했지만 아무도 효과가 없었습니다. Here's 내 코드의 예 :

import glob 

videoPaths = glob.glob(r"C:\Users\tobia_000\Desktop\BBT\Video\*.mp4") 
subsPaths = glob.glob(r"C:\Users\tobia_000\Desktop\BBT\Subs\*.srt") 
#With glob I sort the filenames of video and subs in separate variables 

ep1 = [] 
ep2 = [] 
ep3 = [] 
#etc.. 

이것은 videoPaths 및 subsPaths 변수가 내가 가지고있는 파일과 같을 것이다 방법이다. 나는 아직 그들 모두를 갖고 있지 않다.

videoPath = ["The.Big.Bang.Theory.S05E24.HDTV.x264-LOL.mp4", 
"The.Big.Bang.Theory.S05E19.HDTV.x264LOL.mp4", 
"The.Big.Bang.Theory.S05E21.HDTV.x264-LOL.mp4"] 

subsPath = ["The Big Bang Theory - 5x19 - The Weekend Vortex.720p HDTV.lol.en.srt", 
"The Big Bang Theory - 5x21 - The Hawking Excitation.HDTV.LOL.en.srt", 
"The Big Bang Theory - 5x24 - The Countdown Reflection.HDTV.LOL.en.srt"] 
+3

파일 이름은 어떻게 생겼습니까? – JazZ

+0

유일한 차이점은 확장 기능입니까? 위의 두 가지 질문을 제외하고'zip (glob (path1), sorted (glob2)))' –

+0

을 정렬하면. 'videoPaths와'subsPaths'의 파일 이름이 적절하게 정렬되어 있습니까? ? 원하는 파일 이름 확장명을 변경 하시겠습니까? 아니면 더 많이 있습니까? – Vasif

답변

3

당신은 쌍을 만들기 위해 zip를 사용할 수 videoPathssubsPaths에 대한 경우 정렬 된 목록은 서로에 해당하는에 정확합니다. 즉, 첫 번째 에피소드 동영상과 자막은 두 목록의 첫 번째 요소입니다.

episodes = list(zip(videoPaths, subsPaths)) 

편집 : 및 glob 반환 일종의 그 전에, 임의의 순서로 초래하기 때문이다.

episodes = list(zip(sorted(videoPaths), sorted(subsPaths))) 
+1

glob 정렬 할 수 있도록 파일을 정렬하십시오. –

+1

'sorted'가 추가되었습니다. 이미 OP 댓글에 나와 있습니다. – aneroid