import subprocess import csv def addressFinder(addressFile, outputFile): f = open(addressFile) fcsv = csv.reader(f) addressInfo = [] found = 0 for l in fcsv: print l[0] addressInfo.append(ldapAgent(l[0])) if len(ldapAgent(l[0]))>1: found += 1 print addressInfo print "found is", found fn = open(outputFile,"w") out = csv.writer(fn) for l in addressInfo: outputInfo = [l["name"]] if "email" in l: outputInfo.append(l["email"]) if "delivery address" in l: outputInfo.append(l["delivery address"]) print outputInfo out.writerow(outputInfo) f.close() fn.close() return addressInfo def ldapAgent(name): ldapInfo = subprocess.check_output('ldapsearch -LLL -x "uid=' + name + '"',shell=True) ldapInfoSplit = ldapInfo.split("\n") info = {} info['name'] = name for l in ldapInfoSplit: if l[:len("physicalDeliveryOfficeName")] == "physicalDeliveryOfficeName": info["delivery address"] = l[len("physicalDeliveryOfficeName")+2:] elif l[:len("mail")] == "mail": info["email"] = l[len("mail")+2:] return info if __name__ == '__main__': addressFinder("facultyInvitationKerberos.csv","facultyInvitationKerberosOut.csv")