dosya kümesi onay nasıl bir adlandırma şeması uygun

oy
2

Belirli bir adlandırma / kuruluş düzenine uyacak kontrol etmek istediğiniz (yani oldukça keyfi olmasına rağmen, TV bölümleri) Ben dosyaların bir grup var ..

Şu anda: Ben regex üç diziler, geçerli dosya adları için bir tane, bir bölüm adı eksik dosyalar için bir tane, ve geçerli yollar için bir tane var.

Eğer maç, eksik-ep-name regexs ile aynı şeyi değilse bu eşleşirse Sonra ben döngü her geçerli-dosya regex olsa, ben geçersiz olarak ekler, bir geçerli dict ekler bir hata koduyla dict (2: 'bölümlük adı yok') o ne uyuyorsa, o şekil bozukluğuna adı 'hata koduyla geçersiz ekleniyor.

Geçerli kod bulunabilir burada

Her dizininde bir folder.jpg dosyanın varlığını kontrol eden bir kural eklemek için, ancak mevcut durumu var bu eklemek için kod ölçüde daha dağınık yapacak istiyorum ..

Nasıl daha genişleyebilir bir şekilde bu sistemi yazabilirim?

o kontrol etmek gerekiyor kurallar olacaktır ..

  • Dosya formatında Show Name - [01x23] - Episode Name.aviya Show Name - [01xSpecial02] - Special Name.aviyaShow Name - [01xExtra01] - Extra Name.avi
  • Dosya adı formatında ise Show Name - [01x23].aviçıkışın bir 'kayıp bölüm adı' bölümü görüntülemek
  • Yol biçiminde olmalıdır Show Name/season 2/the_file.avi(sezon 2 dosya doğru sezon numarası olması gereken yerde)
  • Her Show Name/season 1/klasör folder.jpg içermelidir

.herhangi bir fikir? Ben TV bölümlerini kontrol çalışıyorum iken, bu kavram / kod birçok şeyi uygulamak gerekir ..

Ben tek düşünce biçiminde dicts listesi vardı:

checker = [
{
    'name':'valid files',
    'type':'file',
    'function':check_valid(), # runs check_valid() on all files
    'status':0 # if it returns True, this is the status the file gets
}
Oluştur 20/08/2008 saat 23:50
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

bu ifadeyi çürütmek için "dosya adı doğru" ve oradan çalışır: belki varsaymak yaklaşımını almalıdır:

Yalnızca ile dosya izin gerçeği ile: "-" 'şovu adına', 'sezon numarası x bölüm sayısı' ve 'bölüm adı', bu öğeler ile ayrılmış gerektiğini kesin olarak bilmek (çizgi) böylece zorunda doğru olduğu bir dosya için bu 2 var.
o kontrol eder, sen ebeveynin ana klasör (durumda i varsayalım duyarsız) görüldüğü gibi gösteri adı gösteri adı eşleştiğini kontrol etmek için kodu kullanabilirsiniz, sezon numarası veliler ile veya 0 ekstra olmadan (sayısal değeri klasörü maçları Başa eklenen).

ancak tire doğru miktarda göremiyorsanız anında şeylerin yanlış olduğunu biliyoruz ve testlerin vb geri kalanından önce durdurmak

ve ayrı ayrı dosya olmadığını kontrol edebilirsiniz folder.jpgvar ve gerekli önlemleri alır. ya o ilk yapmak ve o klasördeki dosyaların geri kalanı o dosyayı filtre edin.

Cevap 21/08/2008 saat 06:59
kaynak kullanıcı

oy
2

Her dizininde bir folder.jpg dosyanın varlığını kontrol eden bir kural eklemek için, ancak mevcut durumu var bu eklemek için kod ölçüde daha dağınık yapacak istiyorum ..

Bu kötü görünmüyor. Aslında mevcut kod çok güzel yapar ve Sven de bunu yapmak için iyi bir yol söz:

  1. tüm dosyaların bir listesini alın
  2. "Gerekli" dosyaları denetleme

Sadece kendi sözlüğe gerekli dosyaların listesini eklemek var olurdu:

checker = {
  ...
  'required': ['file', 'list', 'for_required']
}

Bunu yapmak için daha iyi / genişletilebilir yol olarak Bildiğim kadarıyla orada? Tam olarak emin değilim. Ben sadece gerçekten muhtemelen "birden fazla" normal ifadeler bırakın ve bir sınırlayıcı kullanarak için Sven'in fikrinin kapalı inşa etmek için bir yol düşünebilirim. Yani şöyle benim strateji bir sözlük tanımlayan olacaktır (ve ben Python sözdizimi bilmiyorum üzgünüm, tembel bir tad değilim bana aramayı ama anlamlı olmalıdır. / Regex / a regex için kısaltmadır ):

check_dict = {
  'delim'    : /\-/,
  'parts'    : [ 'Show Name', 'Episode Name', 'Episode Number' ],
  'patterns' : [/valid name/, /valid episode name/, /valid number/ ],
  'required' : ['list', 'of', 'files'],
  'ignored'  : ['.*', 'hidden.txt'],
  'start_dir': '/path/to/dir/to/test/'
}
  1. sınırlayıcıya göre dosya adını bölün.
  2. parçaların her birini kontrol edin.

Onun sıralı bir listenin Çünkü parça eksik olduğunu belirlemeden ve bir bölüm herhangi kalıba uymayan eğer bozuk. Burada partsve patternsbir 1'e 1 oranına sahip. Yerine sözlüğe iki diziler sırasını zorlar.

Yok Sayılan ve gerekli dosyalar listelenebilir. .Ve ..dosyalar muhtemelen otomatik olarak göz ardı edilmelidir. Kullanıcı kabuk genişletilebilir girdi "Neználkovo" izin verilmesi gerekmektedir. Ben burada düşünüyorum svn:ignoreözellikleri, ancak globbing dosyaların listesini almak için doğaldır.

İşte start_dirgeçerli dizine varsayılan olurdu ama dizinleri bir demet otomatik test çalıştırmak için tek bir dosya istiyorsa bu yararlı olurdu.

Buradaki gerçek gevşek uç yolu şablon ve aynı doğrultuda hangi yolu "geçerli dosyalar" için gereklidir. Gerçekten bir şablon oluşturmak için ... büyük bir normal ifadeyi yazma ve ondan gruplarını almadan sağlam fikir geldi olamazdı. Bu bir TextMate dil dilbilgisi, yazma gibi bir çok hissetti. Ama bu kullanım kolaylığı üzerinde başıboş başlar. Asıl sorun yol şablonu ibaret değildir olmasıydı partsmantıklı ama karmaşıklık ekleyen şekilde,.

Eğer ne düşündüğünü uyumlu bu strateji mi?

Cevap 21/08/2008 saat 23:02
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more