有人可以帮我弄清楚我做错了什么吗?我正在编写一个 python shell 脚本,它接受一个 ldif 文件和一个 csv 文件,然后将 csv 文件中的内容附加到 ldif 中每条记录的末尾。就像是:
CSV 样本:
“核心价值” "abc","def" “富”、“酒吧” “qwop”,“翻牌”
示例 .ldif:
dn:阿齐兹 cn: Aziz_09 dn:卡尔 cn: 卡尔_04
python myscript.py "sample.ldif" "sample.csv" 之后
dn:阿齐兹 cn: Aziz_09 核心价值 abc:定义 富:酒吧 qwop:翻牌 dn:卡尔 cn: 卡尔_04 核心价值 abc:定义 富:酒吧 qwop:翻牌
到目前为止,我的代码可以编译,但是它没有正确修改文件。我正在创建一个对象,该对象在创建时采用 csv 文件路径名字符串,然后将键存储到列表字段中,并将值存储到列表字段中。然后我打开 ldif 文件,解析记录之间的转义字符,并在每条记录的末尾插入列表字段(KEY 和 VALUE):
导入系统,csv # 创建可以打开 csv 并在其数组中设置 csv 数据的新对象 类容器(对象): def __init__(self, filename=None, keys=None, values=None): self.filename = 文件名 self.keys = [] 自我价值 = [] # 打开 self.filename 并将第 0 行和第 1 行分别放入键和值中 def csv_to_list(): 使用 open(self.filename, 'rb') 作为 f: 阅读器 = csv.reader(f) 对于阅读器中的行: self.keys = 行[0] self.values = 行[1] haruhi = Container("./content/test_pairs.txt") haruhi.csv_to_list # 打开命令行调用 ldif_record_a.py 的第一个参数进行读/写 使用 open(sys.argv[1],'r+') 作为 f1: lines=[x.strip() for x in f1] # 创建列表,每行作为一个元素 f1.truncate(0) f1.seek(0) 计数 = 0 对于 x 行: 如果 x: f1.write(x+'\n') 别的: f1.write("{0}: {1}\n\n".format(haruhi.keys[count] , haruhi.values[count])) 计数 = 计数 + 1 f1.write("{0}: {1}\n\n".format(haruhi.keys[count] , haruhi.values[count]))
我是 Python 新手!任何帮助、建议和/或资源方向将不胜感激!谢谢你这么