2012-01-18 18 views
4

ファイル名から映画のメタデータ(タイトルと年)を抽出しようとしています。ファイル名から映画タイトルを抽出する方法

名前パターンは標準ではありませんが、ランダムでもありませんので、可能な限り多くのケースをカバーしています。あなたのアイデアを与えることを
が、これはファイル名の例です:

samples = ['The Movie Title.avi', 
      'The Movie Title DVDRIP. Useless.info.avi', 
      'The Movie Title [2005].avi', 
      'The Movie Title (2005) [Useless.info].avi', 
      'The Movie Title 2005 H264 DVDRip Useless-Info.avi', 
      'The Movie Title 2005 XviD Useless info.avi', 
      'The Movie Title {2005} DVDRIP. UselessInfo.avi', 
      'The.Movie.Title.2005.Useless.info.avi', 
      '[Useless.info]_The.Movie.Title.2005.Useless.avi'] 

AnywhereのUselessInfoが書かれているものが何もすることができ、情報(ファイルからファイルへの変更)をフェッチするために使用することはできませんので、それはだあります。また、'The Movie Title'は数字やアルファベット以外の文字が含まれている可能性があります(例:The Movie Title 2 - The Return')。今、私は正規表現のチェーンを使用してい

metadata = {'title': 'The Movie Title', 'year': '2005'} 

、私はそれがそれを行うためのより良い方法がありますかわからない:

が期待される出力は、辞書のようにする必要があります。

+1

これは興味深い問題ですが、いくつかの手順で抽出しようとしているタイトルを破壊する可能性があります。ステップ5は、数字(例えば、「60秒」)で始まる映画のタイトルから数字を消去する。 – Maciek

+0

そして、あなたはもっと大きなゴミ箱のセットを['dvd'、 'DVD']よりもたくさん持っているべきです:)もっと柔軟な拡張ストリッピングを試すことができます:name = name [:name.rfind( '。')] - there古い* .mpeg拡張子です。 – Maciek

+0

@マシエク:そうではありません。ステップ5では、英数字以外の文字だけが削除されます。** –

答えて

関連する問題