有人可以帮我弄清楚我做错了什么吗? 我在写一个需要一个ldif文件和一个csv文件的python shell脚本,然后将csv文件中的内容附加到ldif中每条记录的末尾。喜欢的东西:Python ldif注入和csv阅读脚本
样品CSV:
"KEY","VALUE" "abc","def" "foo","bar" "qwop","flop"
样品.ldif:
dn: Aziz cn: Aziz_09 dn: Carl cn: Carl_04
蟒蛇myscript.py “sample.ldif” “sample.csv”
dn: Aziz cn: Aziz_09 KEY: VALUE abc: def foo: bar qwop: flop dn: Carl cn: Carl_04 KEY: VALUE abc: def foo: bar qwop: flop
后到目前为止,我的代码编译但是它不会正确修改文件。我正在创建一个对象,该对象在创建时需要一个csv文件路径名字符串,然后将这些键存储到一个列表字段中,并将这些值存储到一个列表字段中。然后我打开LDIF文件,分析了记录之间的转义字符,并在每个记录的末尾插入列表字段(key和value):
import sys, csv # Make new object that can open a csv and set csv data in its arrays class Container(object): def __init__(self, filename=None, keys=None, values=None): self.filename = filename self.keys = [] self.values = [] # Opens self.filename and puts 0th and 1st rows into keys and values respectively def csv_to_list(): with open(self.filename, 'rb') as f: reader = csv.reader(f) for row in reader: self.keys = row[0] self.values = row[1] haruhi = Container("./content/test_pairs.txt") haruhi.csv_to_list # open first argument of the command line call to ldif_record_a.py for read/writing with open(sys.argv[1],'r+') as f1: lines=[x.strip() for x in f1] # Create list with each line as an element f1.truncate(0) f1.seek(0) count = 0 for x in lines: if x: f1.write(x+'\n') else: f1.write("{0}: {1}\n\n".format(haruhi.keys[count] , haruhi.values[count])) count = count + 1 f1.write("{0}: {1}\n\n".format(haruhi.keys[count] , haruhi.values[count]))
我是新来的Python!任何帮助,建议和/或资源的方向将不胜感激!谢谢你这么
你用什么python版本? – 2012-07-10 16:10:17
而不是'self.keys = row [0]'我想你想说'self.keys.append(row [0])'? – Shaung 2012-07-10 16:33:19
@ZagorulkinDmitry我正在使用2.7 – 2012-07-10 16:58:42