zoukankan      html  css  js  c++  java
  • 配置文件的自动化更新(v1.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-1031CCU_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]
    ')                 # 获取"[StringSet1]"的索引
    55             lst.insert(n, new_section + '
    ')                      # 将新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 + "
    "
    62                 if i == 8:
    63                     value = J8
    64                 elif i == 9:
    65                     value = J9
    66                 elif i == 10:
    67                     value = J10 + "
    "
    68                 lst.insert(n, item + " = " + value + '
    ')         # 将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
  • 相关阅读:
    mysql view
    单点登录原理与简单实现
    复述记忆法
    英语细节锦集(基本时态的构成、元音辅音字母、)
    被动语态 动词的过去分词
    play后面加the不加the如何分辨
    正则表达式入门
    使用 lxml 中的 xpath 高效提取文本与标签属性值
    Android Studio 导入新工程项目
    winfrom Panel 问题
  • 原文地址:https://www.cnblogs.com/wangzhilong/p/11697721.html
Copyright © 2011-2022 走看看