Bir dosya kontrol programının ilk aşamalarında kodlama yapmak ve çalışmak için yeni yapıyorum. Bir dosyanın başlığında "doğru bilgi" içerip içermediğini görmek için bir program yazıyorum.Dosya adının bir parçasının bir sözlükte veya listede mevcut olduğunu doğrulayın, Python 2.7
Şu anda bir başlıktaki part
'un bir sözlükte veya listede kabul edilebilir bir adla eşleşip eşleşmediğini görmek için kontrol ediyorum.
Kodum aşağıda. 3'ten az parça içeren bir başlık koyarsam, bir hata atılır. Ancak, 3 parts
ile bir başlığa koyarsam, parts
listelerinden veya sözlüğünden hiçbiri uyuşmasa bile, programım başlığın doğru olduğunu iddia eder (ki o değil).
if-statements
çünkü tamamının veya yılların kaba biliyorum ama her
part
için
if-statements
bir ton yazma yerine şu anda sahip olduğumuz en iyi fikir.
Kodun düzeltilmesinde bana yardımcı olan herhangi bir kişi, bir listenin veya sözlüğün bir parçası veya bir sözlükle karşılaştırıldığından emin olabilirsiniz.
bir örneği (doğru) bir dosya adı olacaktır: DJ_BR_UVT.xls
ve yanlış bir dosya adının bir örneği : DJ_BR_staford.xls
* bir not olarak, parts
veya tür, okul, baş harfleri, herhangi bir sırada olabilir dosya adı.
def checkFilename(filename):
print 'filename = ' + filename
Parts = filename.split('_')
if len(Parts) != 3:
print "There are " + str(len(Parts)) + " that is an incorrect amount of info in file name. There should be 3 parts to your file name"
return
Part1 = Parts[0]
Part2 = Parts[1]
Part3 = Parts[2]
Species_Dictionary = {'Brown Rat':'BR', 'Black Rat':'BLR', 'Dwarf Rat':'DR', 'White Mouse':'GG', 'Human':'HS', 'Brown Mouse':'VK'}
School_List = ['UHJ', 'UMG', 'COL', 'UVT']
Initials_List = ['DM', 'DCM', 'YXAA', 'DJ']
Species_Check = 0
School_Check = 0
Initials_Check = 0
# supposed to check to see if each 'part' can be found in the Species_Dictionary
if Part1 or Part2 or Part3 in Species_Dictionary:
Species_Check = 1
print Species_Check
else:
print "Cannot find a valid species"
return
#check to see if any of the 'parts' can be found in the School-List
if Part1 or Part2 or Part3 in School_List:
School_Check = 1
else:
print "Cannot find valid school"
return
#Check if any of the 'parts' are in the Initials_List
if Part1 or Part2 or Part3 in Initials_List:
Initials_Check = 1
else:
print "Cannot find valid initials"
return
#If the previous 3 if-statements have been met, the file 'passes' and contains correct info
if Species_Check == 1 and School_Check == 1 and Initials_Check == 1:
print "Your file contains correct title information"
else:
print "Your file name does not contain the correct information"
return
yazdırır: Dosya adları herhangi bir sırada olabilir. Türler, Harfler ve Okul zorunlu olarak her zaman 1., 2. ve 3. sırada değildir. Bu yüzden iki listeden ve sözlükten farklı 'parçaları' çalıştırmak istedim ... çünkü dosya adının herhangi bir kısmı tür/ad/okul içerebilir. Özel bir sipariş yok. – umgcoder