当前位置: 首页 > news >正文

用dw怎么做网站留言板有名的公关公司

用dw怎么做网站留言板,有名的公关公司,卢松松博客源码 wordpress博客模板,爱洛阳网目录 ​前言 正文 1.Python基础学习 2.Python读取Excel表格 2.1安装xlrd模块 2.2使用介绍 2.2.1常用单元格中的数据类型 2.2.2 导入模块 2.2.3打开Excel文件读取数据 2.2.4常用函数 2.2.5代码测试 2.2.6 Python操作Excel官方网址 3.Python创建xml文件 3.1 xml语法…目录 ​前言 正文 1.Python基础学习 2.Python读取Excel表格 2.1安装xlrd模块 2.2使用介绍 2.2.1常用单元格中的数据类型 2.2.2 导入模块 2.2.3打开Excel文件读取数据 2.2.4常用函数 2.2.5代码测试 2.2.6 Python操作Excel官方网址 3.Python创建xml文件 3.1 xml语法学习 3.2创建xml文件 3.3 代码测试 4.解决问题 5.总结 ​前言 ECU诊断工作需要实现的DTCDiagnostic trouble code接近500个每个DTC的配置项基本类似。也就是说需要在AUTOSAR工具上重复手动配置500个DTC。AUTOSAR工具还非常的卡。 分析整个操作过程为Excel表格读取一个DTC码--ISOLAR工具中手动配置一个DTC--重复500次 -- 最后生成配置文件Dem_Config.axml. Axml文件中每一项DTC的配置内容如下基本就是修改DTC码。 基于以上重复且有规律的工作需求考虑使用Python脚本搞定。 正文 1.Python基础学习 推荐菜鸟教程https://www.runoob.com/python3/python3-install.html 整个学习过程推荐两到3天完成。 2.Python读取Excel表格 python操作excel主要用到xlrd和xlwt这两个库即xlrd是读excelxlwt是写excel的库。这里只用到xlrd模块。 2.1安装xlrd模块 命令行pip install xlrd 2.2使用介绍 2.2.1常用单元格中的数据类型 0: empty,  1: string(text),  2:number, 3:date,  4: boolean,  5: error,  b: blank(空白) 2.2.2 导入模块 Import xlrd 2.2.3打开Excel文件读取数据 Data xlrd.open_workbook(r’filename’) 2.2.4常用函数 Excel当中最重要的就是对book(工作簿)和sheet(工作表)的操作 1)获取book中一个工作表 table data.sheets()[0] #通过索引顺序获取 table data.sheet_by_index(sheet_indx)) #通过索引顺序获取 table data.sheet_by_name(sheet_name) #通过名称获取 以上三个函数都会返回一个xlrd.sheet.Sheet()对象 names data.sheet_names() #返回book中所有工作表的名字 data.sheet_loaded(sheet_name or indx) # 检查某个sheet是否导入完毕 2)行的操作 nrows table.nrows #获取该sheet中的有效行数 table.row(rowx) #返回由该行中所有的单元格对象组成的列表 table.row_slice(rowx) #返回由该列中所有的单元格对象组成的列表 table.row_types(rowx, start_colx0, end_colxNone) #返回由该行中所有单元格的数据类型组成的列表 table.row_values(rowx, start_colx0, end_colxNone) #返回由该行中所有单元格的数据组成的列表 table.row_len(rowx) #返回该列的有效单元格长度 3)列的操作 ncols table.ncols #获取列表的有效列数 table.col(colx, start_rowx0, end_rowxNone) #返回由该列中所有的单元格对象组成的列表 table.col_slice(colx, start_rowx0, end_rowxNone) #返回由该列中所有的单元格对象组成的列表 table.col_types(colx, start_rowx0, end_rowxNone) #返回由该列中所有单元格的数据类型组成的列表 table.col_values(colx, start_rowx0, end_rowxNone) #返回由该列中所有单元格的数据组成的列表 4)单元格的操作 table.cell(rowx,colx) #返回单元格对象 table.cell_type(rowx,colx) #返回单元格中的数据类型 table.cell_value(rowx,colx) #返回单元格中的数据 2.2.5代码测试 测试Excel表格 测试代码 #!/usr/bin/env python import xlrd ​ data xlrd.open_workbook(r.\book.xlsx) ​ def xlrd_read():table data.sheets()[0] #通过索引顺序获取第一个sheet1 #行操作print(There are %s rows in sheet1 %(table.nrows)) #获取该sheet中的有效行数print(Return type of table.row(): , type(table.row(0))) #返回由该行中所有的单元格对象组成的列表print(Items of row 1 on shee1: , table.row(1)) #第2行列表元素print(Items of row 2 on sheet1: , table.row_slice(2)) #返回由该行中所有的单元格对象组成的列表print(table.row_types(1, start_colx0, end_colxNone)) #返回由该行中所有单元格的数据类型组成的列表print(table.row_values(1, start_colx0, end_colxNone)) #返回由该行中所有单元格的数据组成的列表print(Length of row 2: , table.row_len(1)) #返回该行的有效单元格长度#列操作print(There are %s columns in sheet1 %(table.ncols)) #获取列表的有效列数print(table.col(0, start_rowx0, end_rowxNone)) #返回由该列中所有的单元格对象组成的列表print(table.col_slice(0, start_rowx0, end_rowxNone)) # 返回由该列中所有的单元格对象组成的列表print(table.col_types(0, start_rowx0, end_rowxNone)) # 返回由该列中所有单元格的数据类型组成的列表print(table.col_values(0, start_rowx0, end_rowxNone)) # 返回由该列中所有单元格的数据组成的列表#单元格操作print(table.cell(1, 1)) # 返回单元格对象print(table.cell_type(1, 1)) # 返回单元格中的数据类型print(table.cell_value(1, 1)) # 返回单元格中的数据 def main():xlrd_read() if __name__  __main__:main() 测试结果 2.2.6 Python操作Excel官方网址 http://www.python-excel.org/ 3.Python创建xml文件 3.1 xml语法学习 https://www.runoob.com/xml/xml-tutorial.html 3.2创建xml文件 ElementTree是python的XML处理模块它提供了一个轻量级的对象模型。它在Python2.5以后成为Python标准库的一部分但是Python2.4之前需要单独安装。在使用ElementTree模块时需要import xml.etree.ElementTree的操作。 ElementTree表示整个XML节点树而Element表示节点数中的一个单独的节点。 构建XML文件 ElementTree(tag)其中tag表示根节点初始化一个ElementTree对象。 Element(tag, attrib{}, **extra)函数用来构造XML的一个根节点其中tag表示根节点的名称attrib是一个可选项表示节点的属性。 SubElement(parent, tag, attrib{}, **extra)用来构造一个已经存在的节点的子节点。 Element.text和SubElement.text表示element对象的额外的内容属性Element.tag和Element.attrib分别表示element对象的标签和属性。 ElementTree.write(file, encodingus-ascii, xml_declarationNone, default_namespaceNone, methodxml)函数新建一个XML文件并且将节点数数据写入XML文件中。 3.3 代码测试 import xml.etree.ElementTree as ET ​ def buildNewsXmlFile():# 设置一个新节点并设置其标签为rootroot ET.Element(root)# 在root下新建两个子节点,设置其名称分别为sina和chinabytesina ET.SubElement(root, sina)chinabyte ET.SubElement(root, chinabyte)# 在sina下新建两个子节点设置其节点名称分别为number和firstsina_number ET.SubElement(sina, number)sina_number.text 1sina_first ET.SubElement(sina, first)sina_first.text http://roll.tech.sina.com.cn/internet_all/index_1.shtml# 在chinabyte下新建两个子节点设置其节点名称为number和firstchinabyte_number ET.SubElement(chinabyte, number)chinabyte_number.text 1chinabyte_first ET.SubElement(chinabyte, first)chinabyte_first.text http://www.chinabyte.com/more/124566.shtml# 将节点数信息保存在ElementTree中并且保存为XML格式文件RawText ET.tostring(root)dom minidom.parseString(RawText)f open(r.\Test_4.axml, w, encodingutf-8)dom.writexml(f, indent\t, newl\n, addindent\t, encodingutf-8)f.close()def main():# xml_read()# xml_write()#xml_create()buildNewsXmlFile()if __name__ __main__:main() 4.解决问题 读取Excel表格提取需要的数据 -- 缓存数据 -- 遍历没有给数据生成xml文件 -- 合并到配置文件当值 -- 完成所有配置 #!/usr/bin/env python import xlrd import xml.etree.ElementTree as ET ​ from xml.dom import minidom ​ ExcelPath  r.\FileName.xlsx First_Dtc_RowNum 25 Last_Dtc_RowNum 456 DtcCodeHexStr [] DtcCodeDemStr [] ​ def OpenExcel():global DtcCodeHexStrglobal DtcCodeDemStrdata xlrd.open_workbook(ExcelPath)table data.sheet_by_name(DTC)DtcCodeHexStr table.col_values(2, start_rowxFirst_Dtc_RowNum, end_rowxLast_Dtc_RowNum)for HexStr in DtcCodeHexStr:int_10 int(str(HexStr), 16)int_10_str str(int_10)DtcCodeDemStr.append(int_10_str)print(Type of DtcCodeHexStr ,type(DtcCodeHexStr))print(DtcCodeHexStr ,DtcCodeHexStr)print(Type of DtcCodeDemStr , type(DtcCodeDemStr))print(DtcCodeDemStr , DtcCodeDemStr) ​ def CreatDemDtcXml():global First_Dtc_RowNumglobal Last_Dtc_RowNumglobal DtcCodeHexStrglobal DtcCodeDemStrCONTAINERS ET.Element(CONTAINERS)for i in range(Last_Dtc_RowNum - First_Dtc_RowNum):EcuContainrValue ET.SubElement(CONTAINERS, ECUC-CONTAINER-VALUE)ET.SubElement(EcuContainrValue, SHORT-NAME).text DemDTC_ DtcCodeHexStr[i]ET.SubElement(EcuContainrValue, DEFINITION-REF, {DEST: ECUC-PARAM-CONF-CONTAINER-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemDTCParameterValues ET.SubElement(EcuContainrValue, PARAMETER-VALUES)EcucTextualParamValue ET.SubElement(ParameterValues, ECUC-TEXTUAL-PARAM-VALUE)ET.SubElement(EcucTextualParamValue, DEFINITION-REF,{DEST:ECUC-ENUMERATION-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemDTC/DemDTCSeverityET.SubElement(EcucTextualParamValue, VALUE).text DEM_SEVERITY_NO_SEVERITYEcuNumerivalParamValue ET.SubElement(ParameterValues, ECUC-NUMERICAL-PARAM-VALUE)ET.SubElement(EcuNumerivalParamValue, DEFINITION-REF, {DEST:ECUC-INTEGER-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemDTC/DemDtcValueET.SubElement(EcuNumerivalParamValue, VALUE).text DtcCodeDemStr[i]ReferenceValues ET.SubElement(EcuContainrValue, REFERENCE-VALUES)EcucReferenceValue ET.SubElement(ReferenceValues, ECUC-REFERENCE-VALUE)ET.SubElement(EcucReferenceValue, DEFINITION-REF,{DEST:ECUC-REFERENCE-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemDTC/DemDTCAttributesRefET.SubElement(EcucReferenceValue, VALUE-REF,{DEST:ECUC-CONTAINER-VALUE}).text /ETAS_Project/EcucModuleConfigurationValuess/Dem/DemConfigSet_0/DemDTCAttributesRawText  ET.tostring(CONTAINERS)dom minidom.parseString(RawText)f open(r.\DemDtc.axml, w, encodingutf-8)dom.writexml(f, indent\t, newl\n, addindent\t, encodingutf-8)f.close()def CreatDemEventParameterXml():global First_Dtc_RowNumglobal Last_Dtc_RowNumglobal DtcCodeHexStrglobal DtcCodeDemStrCONTAINERS ET.Element(CONTAINERS)for i in range(Last_Dtc_RowNum - First_Dtc_RowNum):EcuContainrValue ET.SubElement(CONTAINERS, ECUC-CONTAINER-VALUE)ET.SubElement(EcuContainrValue, SHORT-NAME).text DemEventParameter_ DtcCodeHexStr[i]ET.SubElement(EcuContainrValue,DEFINITION-REF).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameterParameterValues ET.SubElement(EcuContainrValue, PARAMETER-VALUES)EcucNumericalParamValue_0 ET.SubElement(ParameterValues, ECUC-NUMERICAL-PARAM-VALUE)ET.SubElement(EcucNumericalParamValue_0, DEFINITION-REF, {DEST: ECUC-INTEGER-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemEventFailureCycleCounterThresholdET.SubElement(EcucNumericalParamValue_0, VALUE).text 1EcucTextualParamValue_0 ET.SubElement(ParameterValues, ECUC-TEXTUAL-PARAM-VALUE)ET.SubElement(EcucTextualParamValue_0, DEFINITION-REF, {DEST: ECUC-ENUMERATION-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemReportBehaviorET.SubElement(EcucTextualParamValue_0, VALUE).text REPORT_BEFORE_INITEcucNumericalParamValue_1 ET.SubElement(ParameterValues, ECUC-NUMERICAL-PARAM-VALUE)ET.SubElement(EcucNumericalParamValue_1, DEFINITION-REF, {DEST: ECUC-BOOLEAN-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemEventAvailableET.SubElement(EcucNumericalParamValue_1, VALUE).text trueEcucTextualParamValue_1 ET.SubElement(ParameterValues, ECUC-TEXTUAL-PARAM-VALUE)ET.SubElement(EcucTextualParamValue_1, DEFINITION-REF, {DEST: ECUC-ENUMERATION-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemEventKindET.SubElement(EcucTextualParamValue_1, VALUE).text DEM_EVENT_KIND_BSWEcucNumericalParamValue_2 ET.SubElement(ParameterValues, ECUC-NUMERICAL-PARAM-VALUE)ET.SubElement(EcucNumericalParamValue_2, DEFINITION-REF, {DEST: ECUC-BOOLEAN-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemFFPrestorageSupportedET.SubElement(EcucNumericalParamValue_2, VALUE).text falseReferenceValues ET.SubElement(EcuContainrValue, REFERENCE-VALUES)EcucReferenceValue_0 ET.SubElement(ReferenceValues, ECUC-REFERENCE-VALUE)ET.SubElement(EcucReferenceValue_0, DEFINITION-REF, {DEST: ECUC-REFERENCE-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemDTCRefET.SubElement(EcucReferenceValue_0, VALUE-REF, {DEST: ECUC-CONTAINER-VALUE}).text /ETAS_Project/EcucModuleConfigurationValuess/Dem/DemConfigSet_0/DemDTC_ DtcCodeHexStr[i]EcucReferenceValue_1 ET.SubElement(ReferenceValues, ECUC-REFERENCE-VALUE)ET.SubElement(EcucReferenceValue_1, DEFINITION-REF, {DEST: ECUC-REFERENCE-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemOperationCycleRefET.SubElement(EcucReferenceValue_1, VALUE-REF, {DEST: ECUC-CONTAINER-VALUE}).text /ETAS_Project/EcucModuleConfigurationValuess/Dem/DemGeneral/DemOperationCycle_OtherSubContainers ET.SubElement(EcuContainrValue, SUB-CONTAINERS)EcucContainerValu_0 ET.SubElement(SubContainers, ECUC-CONTAINER-VALUE)ET.SubElement(EcucContainerValu_0, SHORT-NAME).text DemRbEventClass_0ET.SubElement(EcucContainerValu_0, DEFINITION-REF, {DEST: ECUC-PARAM-CONF-CONTAINER-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemRbEventClassParameterValues_0 ET.SubElement(EcucContainerValu_0, PARAMETER-VALUES)EcucNumericalParamValue_3 ET.SubElement(ParameterValues_0, ECUC-NUMERICAL-PARAM-VALUE)ET.SubElement(EcucNumericalParamValue_3, DEFINITION-REF, {DEST: ECUC-INTEGER-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemRbEventClass/DemRbEventBufferTimeET.SubElement(EcucNumericalParamValue_3, VALUE).text 0EcucNumericalParamValue_4 ET.SubElement(ParameterValues_0, ECUC-NUMERICAL-PARAM-VALUE)ET.SubElement(EcucNumericalParamValue_4, DEFINITION-REF, {DEST: ECUC-BOOLEAN-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemRbEventClass/DemRbEventRecoverableInSameOperationCycleET.SubElement(EcucNumericalParamValue_4, VALUE).text 1EcucNumericalParamValue_5 ET.SubElement(ParameterValues_0, ECUC-NUMERICAL-PARAM-VALUE)ET.SubElement(EcucNumericalParamValue_5, DEFINITION-REF, {DEST: ECUC-BOOLEAN-PARAM-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemRbEventClass/DemRbEventStatusBitStorageTestFailedET.SubElement(EcucNumericalParamValue_5, VALUE).text 0EcucContainerValu_1 ET.SubElement(SubContainers, ECUC-CONTAINER-VALUE)ET.SubElement(EcucContainerValu_1, SHORT-NAME).text DemDebounceAlgorithmClassET.SubElement(EcucContainerValu_1, DEFINITION-REF, {DEST: ECUC-CHOICE-CONTAINER-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemDebounceAlgorithmClassSubContainers_1 ET.SubElement(EcucContainerValu_1, SUB-CONTAINERS)EcucContainerValu_2 ET.SubElement(SubContainers_1, ECUC-CONTAINER-VALUE)ET.SubElement(EcucContainerValu_2, SHORT-NAME).text DemDebounceCounterBasedET.SubElement(EcucContainerValu_2, DEFINITION-REF, {DEST: ECUC-PARAM-CONF-CONTAINER-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemDebounceAlgorithmClass/DemDebounceCounterBasedReferenceValues_0 ET.SubElement(EcucContainerValu_2, REFERENCE-VALUES)EcucReferenceValue_2 ET.SubElement(ReferenceValues_0, ECUC-REFERENCE-VALUE)ET.SubElement(EcucReferenceValue_2, DEFINITION-REF, {DEST: ECUC-REFERENCE-DEF}).text /AUTOSAR_Dem/EcucModuleDefs/Dem/DemConfigSet/DemEventParameter/DemDebounceAlgorithmClass/DemDebounceCounterBased/DemDebounceCounterBasedClassRefET.SubElement(EcucReferenceValue_2, VALUE-REF, {DEST: ECUC-CONTAINER-VALUE}).text /ETAS_Project/EcucModuleConfigurationValuess/Dem/DemConfigSet_0/DemDebCntClass_U127_D127RawText  ET.tostring(CONTAINERS)dom minidom.parseString(RawText)f open(r.\DemEventParameter.axml, w, encodingutf-8)dom.writexml(f, indent\t, newl\n, addindent\t, encodingutf-8)f.close() ​ def main():OpenExcel()CreatDemDtcXml()CreatDemEventParameterXml() ​ if __name__ __main__:main() 导入Python生成的xml文件到Davinci/ISOALR等AUTOSAR工具即可完成所有DTC的配置。 5.总结 每个人在处理Excel数据的时候如果发现是重复且有规律的工作都可以考虑使用Python来提高效率。当然Python的功能还有很多很多把基本知识学好后面遇到什么就学什么有目的的去学要快很多。
http://wiki.neutronadmin.com/news/141226/

相关文章:

  • 帮人做网站收费合法吗cg资源网
  • 网站只做优化谷歌seo是什么意思
  • 宠物网站首页模板网站建设与制作培训通知
  • 中小企业门户网站建设策略长春财经学院
  • 网站模板框架cloud域名注册网站
  • 灌南县建设局网站手机站和网站有区别吗
  • 网站建设主流技术设计师培训 网站
  • 360全景网站建设最强的管理咨询公司
  • 网站搭建素材群网络销售怎么一直招人
  • 一个交易网站开发的成本是多少经典网页传奇
  • 佟年帮韩商言做网站是第几集紫网站建设
  • 大良营销网站建设流程微山网站建设公司
  • 门户网站如何制作网页设计师联盟qq
  • 网站开发报告做网站互联网公司有哪些
  • 鑫牛元网站建设成华区网站建设公司
  • 龙岩做网站推广大学生网站开发比赛
  • 东莞网站搭建哪家强济南市建设局官网
  • wordpress分享视频网站wordpress页面文字首行缩进
  • 济南网站建设推广服务Wordpress 数据10万
  • 江苏高校品牌专业建设网站做网站空间
  • wordpress适合电影网站的模板下载跟网站开发公司签合同主要要点
  • 营销型网站的定义建设特效网站
  • 做网站的简称建设工程施工合同的特征
  • flash网站代做怎么做球球业务网站
  • 建筑设计网站制作wordpress免登录发文章
  • 建设企业网站企业深圳5区发布通知
  • 网站建设的优点和不足创业做网站还是软件好
  • 现在做网站一般做多宽微信网页注册入口
  • 网站建设工作部署会网站建设业务怎么开展
  • 如何建立网站快捷网站浏览图片怎么做的