Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- def validCSV(filename):
- pattern = re.compile(r'(\"\w+\"\,)+\"\w+\"')
- sF = 0
- sF_lst = []
- sA = 0
- sA_lst = []
- with open(filename) as myFile:
- for line in myFile:
- if(not line.startswith("#")):
- firstline = line
- break
- laenge = len(firstline.split(","))
- with open(filename) as myFile:
- for id,line in enumerate(myFile):
- if(not line.startswith("#")):
- match = pattern.match(line)
- if(match == None):
- sF = 1
- sF_lst.append(id)
- elif(len(line.split(",")) != laenge):
- sA = 1
- sA_lst.append(id)
- if(sF == 1):
- st = "Syntaxfehler: "
- for ele in sF_lst:
- st = st + "Zeile " + str(ele) + ", "
- return st.strip()[0:-1]
- elif(sA == 1):
- st = "Falsche Spaltenanzahl: "
- for ele in sA_lst:
- st = st + "Zeile " + str(ele) + ", "
- return st.strip()[0:-1]
- else:
- return "OK"
- def gleicheEintrage(filename, spaltenname):
- d = {}
- ret = {}
- with open(filename) as myFile:
- for line in myFile:
- if(not line.startswith("#")):
- firstline = line
- break
- for idx,ele in enumerate(firstline.split(",")):
- if(spaltenname in ele):
- spalten_index = idx
- break
- with open(filename) as myFile:
- for line in myFile:
- if(not line.startswith("#")):
- line = line.split(",")
- if(line[spalten_index].replace('"',"") != spaltenname):
- if(line[spalten_index] not in d):
- d[line[spalten_index]] = 1
- else:
- d[line[spalten_index]] +=1
- for k,v in d.items():
- if(v > 1):
- ret[k] = v
- if(ret == {}):
- for k,v in d.items():
- d[k] = "UNQIUE"
- return d
- return ret
- print(validCSV("CSV.txt"))
- print(gleicheEintrage("CSV.txt", "Vorname"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement