首页 > 其他 > 详细

配置文件的自动化更新(v1.0)

时间:2019-10-18 13:44:12      阅读:55      评论:0      收藏:0      [点我收藏+]
 1 # 导入openpyxl和configparser模块
 2 import openpyxl
 3 from configparser import ConfigParser
 4 import os
 5 
 6 wb = openpyxl.load_workbook("SW知能化-Utility.xlsx")                             # 打开excel文件,获取工作簿对象
 7 
 8 ws = wb["Utility機種対応"]                                                       # 获取指定的表单(sheet)对象
 9 
10 language_code = [CHS, CHT, DEU, ENU, ESP, FRA, ITA, JPN, KOR, PTB]
11 language_coding = {CAT: windows-1252, CHS: ISO-8859-1, CHT: ISO-8859-1, CSY: Windows-1250, DAN: Windows-1252,
12                    DEU: Windows-1252, ELL: Windows-1253, ENU: Windows-1252, ESP: Windows-1252,
13                    FIN: Windows-1252, FRA: Windows-1252, HUN: Windows-1250, ITA: Windows-1252,
14                    JPN: shift_jis, KOR: ks_c_5601-1987, NLD: Windows-1252, NOR: Windows-1252,
15                    PLK: Windows-1250, PTB: Windows-1252, PTG: Windows-1252, RUS: Windows-1251,
16                    SVE: Windows-1252, TRK: Windows-1254}
17 
18 path = ws[F4].value                                                            # 获取F列单元格内容(目标配置文件路径)
19 path_list_dic = {}
20 path_list = []
21 
22 if ... in path:
23     path = path.replace(...\\, E:\Projects\\work_1016-1031\CCU_ALL\\)
24 
25 for lan in language_code:
26     path_list_dic[lan] = path.replace(ENU, lan)
27     path_list.append(path.replace(ENU, lan))
28 
29     if lan == JPN:
30         J8 = ws[J8].value.replace(ws[J8].value[-5], j)
31         J9 = ws[J9].value.replace(ws[J9].value[-5], j)
32         J10 = ws[J10].value.replace(ws[J10].value[-5], j)
33     elif lan == PTB:
34         J8 = ws[J8].value.replace(ws[J8].value[-5], por)
35         J9 = ws[J9].value.replace(ws[J9].value[-5], por)
36         J10 = ws[J10].value.replace(ws[J10].value[-5], por)
37     else:
38         J8 = ws[J8].value.replace(ws[J8].value[-5], lan.lower())
39         J9 = ws[J9].value.replace(ws[J9].value[-5], lan.lower())
40         J10 = ws[J10].value.replace(ws[J10].value[-5], lan.lower())
41 # print(path_list_dic)
42 # print(path_list)
43 
44 
45 def add():
46     for new_path in path_list_dic:
47         # print(new_path)
48         # print(path_list_dic[new_path])
49         # print(language_coding[new_path])
50         with open(path_list_dic[new_path], r, encoding=language_coding[new_path]) as f1:
51             new_section = ws[H4].value                    # 获取H列单元格内容"section"
52             lst = f1.readlines()                            # 读取每行信息
53 #
54             n = lst.index([StringSet1]\n)                 # 获取"[StringSet1]"的索引
55             lst.insert(n, new_section + \n)                      # 将新section按照索引值插入列表中
56             for i in range(4, 11):
57                 n = n + 1
58                 item = ws[I + str(i)].value               # 获取item值
59                 value = str(ws[J + str(i)].value)         # 获取value值
60                 # if i == 7:
61                 #     value = value + "\n"
62                 if i == 8:
63                     value = J8
64                 elif i == 9:
65                     value = J9
66                 elif i == 10:
67                     value = J10 + "\n"
68                 lst.insert(n, item + " = " + value + \n)         # 将item值与value值按照索引插入列表中
69             # print(lst)
70         with open(path_list_dic[new_path], w, encoding=language_coding[new_path]) as f2:
71             f2.writelines(lst)
72 
73 
74 # 获取G列单元格内容,并根据不同值,进行不同函数操作
75 change_type_value = ws[G4].value
76 
77 if change_type_value == Add:
78     # cfg.write(open(path, ‘a‘))
79     add()
80 # elif change_type_value == ‘Edit‘:
81 #     pass
82 # elif change_type_value == ‘Delete‘:
83 #     pass
84 # else:
85 #     pass

 

配置文件的自动化更新(v1.0)

原文:https://www.cnblogs.com/wangzhilong/p/11697721.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!