有人可以帮我弄清楚我做错了什么吗?我正在编写一个 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 新手!任何帮助、建议和/或资源方向将不胜感激!谢谢你这么