odoo 导入文件xml制作,使用csv 文件制作xml 文件

网友投稿 713 2022-10-11

odoo 导入文件xml制作,使用csv 文件制作xml 文件

odoo 导入文件xml制作,使用csv 文件制作xml 文件

import csvimport randomclass XmlFormat(object): def __init__(self): self.wf = open('data/res_location.xml', 'w', encoding='utf-8') self.add_header() def add_header(self): header = """ """ # print(header) self.wf.write(header) def add_tail(self): tail = """ """ self.wf.write(tail) def get_random(self): return random.randrange(1000, 9999, 1) def readfile(self): with open('data/location.csv', 'r', encoding='utf-8') as f: reder = csv.reader(f, delimiter=',') for i, line in enumerate(reder): if not line: continue # todo: 自动抓取表头信息,并设置键值对: if i == 0: # 存储表头字段 if not line: raise header_line = line continue data = {} # print(line) # 处理每一行的数据 for e, var in enumerate(line): # print(e,var,header_line[e]) if header_line[e] == 'new-code': data[header_line[e]] = var or self.get_random() elif header_line[e] == 'is_warehouse': data[header_line[e]] = var or 0 else: data[header_line[e]] = var if (i) % 1000 == 0: # 关闭之前的文件 self.add_tail() self.wf.close() self.wf = open('data/res_location.xml'.format(i), 'w', encoding='utf-8') print('\'data/res_location{}.xml\','.format(i)) self.add_header() # 这里传递参数的方式可以使用**kw self.generate_xml_code(**data) def generate_xml_code(self, **kwargs): """ 设置xml 模板,并生成相应的xml文本, 大括号中的参数需要和csv 文件的字段信息保持一致,如{extra_id} 对应csv 文件中的extra_id字段 xml 模板按照可按照自己的需求进行更换. 注: csv 文件的字段不能重复. :param kwargs: :return: """ str_format = """ {name} internal {is_warehouse} 1 {new-code} """ res = str_format.format(**kwargs) self.wf.write(res) def __del__(self): self.add_tail() self.wf.close()if __name__ == '__main__': a = XmlFormat() a.readfile()

说明:

csv文件需要放在data文件夹中,其实可以修改读取文件的位置

懂得,原来世界如此简单!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:scrapy 教程笔记
下一篇:微信小程序模板消息群发,laravel实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~