2016-08-23 11 views
-2

字幕ファイル(.srt)の名前をそのエピソードに対応するビデオファイルの名前に変更するPythonスクリプトを作成しようとしています。そのため、VLCで開くと字幕が既に読み込まれています。Pythonフィルタリング文字列

これまでのところ、すべてのファイル名をビデオから取得して、2つの別々のリストの文字列にすることに成功しました。今、私は、エピソード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

拡張機能は唯一の違いですか?上記の2つの質問とは別に、 'zip(ソート済み(glob1)、ソート済み(glob2)))' –

+0

。 'videoPathsと' subsPaths'のファイル名は適切に順序付けられていますか? ?あなたはファイル名の拡張子を変更したいのですか、それとももっとありますか? – Vasif

答えて

3

あなたがペアを作るためにzipを使用することができ、videoPathssubsPathsためかのソートされたリストは、彼らが互いに対応して正しいです。すなわち、最初のエピソードビデオと字幕は両方とも各リストの最初の要素です。

episodes = list(zip(videoPaths, subsPaths)) 

編集:globは、結果を任意の順序で返します。その前に並べ替えます。

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

globはありませんファイルを並べ替えることで、それらが並んでいる可能性はかなりスリムです –

+1

'ソート済み 'を追加しました。私はそれがあなたのOPコメントに既にあると思っています。 – aneroid

関連する問題