999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ATM取款機機芯動作LOG文件解析工具的實現

2013-09-19 10:29:54何惠英李紀紅
電子設計工程 2013年5期
關鍵詞:方法

何惠英,李紀紅 ,俞 妍 ,沈 虹

(軍事交通學院 基礎部,天津 300161)

目前國內常見的 ATM 品牌有 NCR、Diebold、Wincor、Fujitsu、OKI、GRG、Hitachi等等。各廠商都有自己獨特的機芯硬件LOG記錄方式,如使用的文件格式有 XML、TXT、Java運行時序列文件、報文格式等等。 這些文件里記錄了硬件機芯的運行狀態和動作過程,為分析機芯的運行狀況、周期疑問帳(如長短款)提供了比較詳細的輔助記錄,這也是相關維護人員掌握取款機硬件設備運行狀況的依據。

但對于一般自助設備維護人員,解析記錄文件代碼比較困難。文中提供了一種基于python語言的取款機機芯運行記錄文件的中文解析工具,并通過使用python語言的綁定wxpython功能實現GUI界面。同時以Wincor LOG文件為例,說明了如何針對不同廠商的機芯硬件LOG記錄方式編寫記錄文件解析工具的方法,起到了拋磚引玉的作用。

1 XML文件及解析模擬介紹

可擴展標記語言 (Extensible Markup Language, XML)[1],用于標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 XML是標準通用標記語言 (SGML)的子集,非常適合Web傳輸。XML提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據[2]。

在Python中提供了許多標準模塊用于處理XML文檔,XML的處理方式有兩大類:SAX(Simple API for XML,XML的簡單 API)和 DOM(Document Object Model,文檔對象模型)[3]。

在Python庫中,xml.dom模塊實現了DOM訪問XML文檔的處理方式[4]。模塊中提供了對樹中節點以及元素訪問的多種方法。另外還提供了xml.dom.mindom模塊來簡化使用DOM處理方式,實現了DOM中的大部分功能。除此之外,還有一個在Python2.5中引入的ElementTree模塊。此模塊提供了一種對于XML文檔的快速處理方式。

除了這些標準庫中自帶的XML處理模塊以外,還有一些第三方提供的優秀XML處理組件,其中比較突出的是lxml,其網址是 http://codspead.net/lxml/。實際上這是一個XML庫的 Python語言綁定。此模塊的使用方式和ElementTree模塊很相似[5]。

本人曾經使用xml.dom.mindom來處理一萬行40列的數據,結果內存占用達到了800 M,后來改用 ElementTree后內存使用改善到50 M左右。和DOM相比,ElementTree模塊提供了一個更輕量級的對象模型,用于以Python處理XML。ElementTree在從頭生成 XML文檔方面和它在操作現有的XML數據方面比較出色[6]。比如,ElementTree使用XPath訪問深層嵌套元素要比手工遞歸搜索容易得多。顯然,在DOM中也可使用XPath,但代價是形成一個過于龐大且不夠統一的API。 ElementTree所有的 Element節點的工作方式是一致的,不像DOM的節點類型那樣“裝飾華麗”。

2 Wincor XML LOG文件及字段介紹

XML文件記錄了ATM機器硬件的運行情況[4],從中可以查找機器故障的原因,可以查找每筆交易的硬件動作詳情。

XML內容舉例

3 用ElementTree解析Wincor LOG文件

綜上所述,我們使用 ElementTree模塊來解析 XML文件,下面介紹解析的方法。

在使用前需要先將模塊導入,在 python中使用 import來導入模塊,導入模塊的格式如下:

方式 1)import module_name

方式 2)from module_name import function_name

方式 3)import module_name as your_name

下面使用第3種方式導入ElementTree模塊。

import xml.etree.ElementTree as tree

導入 ElementTree模塊,為了簡短將名字改為 tree,導入模塊之后可以使用parse方法來解析XML文件,語法如下:

如下面一個簡單的方法可以獲得XML元素的所有內容:

注:因為機型不同,XML文件名不同,元素的名稱也不同,所以加了if else判斷。在這里請注意,使用了parse方法和getiterator方法。在最新的 python2.7里getiterator方法已經不再推薦使用,用iter代替,如下在官方文檔中這樣描述:Deprecated since version 2.7:Use method ElementTree.iter()instead.

iter方法的使用說明:iter(tag=None)Creates and returns a tree iterator for the root element.The iterator loops over all elements in this tree,in section order.tag is the tag to look for(default is to return all elements)

由于本分析工具總代碼有近一萬行,在此僅簡單舉例進行示意分析XML文檔的用法。

4 用wxpython顯示解析后的內容

XML文檔分析完畢后需要將結果顯示出來,本解析工具使用了wxpython的GUI組件進行了各項內容的顯示,如下:

4.1 生成GUI界面

以下是生成基本圖形界面的初始化代碼。

4.2 向GUI組件中寫入分析XML后的數據

#遍歷一個 XML文件,調用前面介紹的分析 XML文件的方法

4.3 解析界面示例

XML記錄文件解析過程界面如圖1所示。

圖1 XML記錄文件解析過程界面Fig.1 Interface of XML log files analysis proces

5 結束語

取款機硬件的所有運行狀態反映在取款機的機芯運行記錄文件中,解析LOG文件是維護人員了解硬件設備的運行情況的主要途徑。文中所提供的ATM取款機機芯動作LOG文件解析工具為一般維護人員分析機器狀態提供了便利,使其不再苦惱于機器代碼。同時針對不同廠商不同格式的記錄文件,基于Python語言說明了編寫記錄文件解析工具的方法,起到了拋磚引玉的作用。

[1]孫廣磊.征服Python---語言基礎與典型應用 [M].人民郵電出版社,2007.

[2]Mark Lutz.Programming Python[M].3rd Edition.Publisher:O'Reilly,2011.

[3]孫昊鷹.互聯網全能基礎[M].北京:北京諾亞思網絡開發有限公司,2001.

[4]Gift N,Jones J M.Python在Unix和Linux系統管理中的應用(影印版)[M].北京:開明出版社,2009.

[5]周偉,宗杰.Python開發技術詳解[M].北京:機械工業出版社,2009.

[6]Lutz M.Learning Python 3rd[M].南京:東南大學出版社,2008.

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 成人欧美在线观看| 毛片在线播放网址| 国产幂在线无码精品| 国产人妖视频一区在线观看| 巨熟乳波霸若妻中文观看免费 | 国产乱人乱偷精品视频a人人澡| 国产性猛交XXXX免费看| 国产 日韩 欧美 第二页| 国产成本人片免费a∨短片| 中文字幕在线观| 福利片91| 国禁国产you女视频网站| 欧美日韩国产一级| a在线亚洲男人的天堂试看| 婷婷激情五月网| 亚洲久悠悠色悠在线播放| 国产乱子伦视频三区| 丰满人妻一区二区三区视频| 亚洲视频一区| 亚洲一区波多野结衣二区三区| 久久天天躁狠狠躁夜夜躁| 91久久国产综合精品女同我| 久久无码av三级| 国产精品美女自慰喷水| 久久精品中文字幕免费| 国产亚洲欧美另类一区二区| 亚洲无码视频图片| 毛片在线播放网址| 二级特黄绝大片免费视频大片| 99re在线视频观看| 国产欧美日韩在线一区| 毛片久久久| 欧美a级完整在线观看| 国产又粗又猛又爽| 国产网站免费观看| 亚洲欧美在线综合图区| 亚洲精品自拍区在线观看| 亚洲性日韩精品一区二区| 亚洲视频在线观看免费视频| 69av免费视频| 麻豆国产原创视频在线播放| 一级毛片不卡片免费观看| 久青草国产高清在线视频| 性做久久久久久久免费看| 国产真实乱子伦精品视手机观看| 国产成人av一区二区三区| 18禁不卡免费网站| 亚洲无码四虎黄色网站| 福利在线一区| 香蕉精品在线| 亚洲香蕉久久| 91精品国产无线乱码在线| 国产精品免费福利久久播放| 国产精品久久久久久久伊一| 国产欧美日韩资源在线观看| 日本人又色又爽的视频| 露脸真实国语乱在线观看| 91九色国产在线| 欧美不卡在线视频| 成人日韩视频| 欧美性天天| 国产欧美日本在线观看| 亚洲精品无码高潮喷水A| 凹凸精品免费精品视频| 国产产在线精品亚洲aavv| 激情综合婷婷丁香五月尤物| 国产福利影院在线观看| 亚洲精品无码AⅤ片青青在线观看| 国产99精品视频| 四虎免费视频网站| 欧美成人一级| 成人日韩精品| 91网红精品在线观看| 无码一区中文字幕| 亚洲成人动漫在线观看| 亚洲中久无码永久在线观看软件| 亚洲高清在线播放| 一级一级一片免费| 久久精品人人做人人爽97| 伊人色在线视频| 亚洲综合狠狠| 欧美日韩高清|