노아 Gift와 "이것이라고 칭한 Grig Gheorghiu에 의하여 빨간 모자 잡지에 있는 최근 기사는 설명된 당신의 grandpappy'd dd 명령이 Python, dd 공용품 및 Google 다른 블록 크기에 처리량을 보여주는 막대 그림표를 일으키기 위하여 도표 API를 이용하는 방법 아니다. 그러나 Python 원본에서 산출은 실제적인 도표가 아니라 유래 도표를 전망하기 위하여 당신이 웹 브라우저로 그 때 풀칠해야 한 URL이었다.
이 원본이 유용했 그러나 웹 브라우저 그래서 나로 URL를 잘라붙여야 하고 싶지 않았다 I는 그 단계를 삭제하는 것을 결정했다.
이 Python 원본은 그들의 원본에 느슨하게 근거를 둔다 그러나 용도는 Google에 연결하는 Python urllib 도서관 pyGTK+ 일과를 사용하여 연속적으로 표시되는 PNG 이미지 파일을 생성하기 위하여 도표로 만든다. #! optparse 수입품 OptionParser 수입품 urllib 수입품 urllib2 수입품 pygtk pygtk.require ('2.0 ′) 수입품 gtk 종류 DisplayGraph에서 /usr/bin/env python 수입품 sys 수입품 os 수입품 명령 수입품 레늄: delete_event def (각자, 도구, 사건, data=None): 반환 틀린 def는 파괴한다 (각자, 도구, data=None): gtk.main_quit () def __init (각자): self.window = gtk. 창 (gtk.WINDOW_TOPLEVEL) self.window.connect (, self.delete_event "delete_event") self.window.connect (, self.destroy "파괴하십시오") self.window.set_border_width (10) self.window.set_position (gtk.WIN_POS_CENTER) self.window.set_title ("디스크 처리량 ") pixbuf = gtk.gdk.pixbuf_new_from_file ("/tmp/dd.png ") os.remove ("/tmp/dd.png ") self.image = gtk. 심상 () self.image.set_from_pixbuf (pixbuf) self.image.sh ow () self.window.add (self.image) self.window.sh ow () def 요점 (각자): gtk.main () 종류 GoogleChart: def __init (각자): self.gchart_url = "http://chart.apis.google.com/chart?" self.gchart_type = "cht=bvs" self.gchart_title = "&chtt=" self.gchart_data = "&chd=t: " self.gchart_labels = "&chxl=0: |" self.gchart_size = "&chs=400×250 ″ self.gchart_axis_labels = "&chxt=x, y, x, y" self.gchart_axis_position = "&chxp=2,50|3,50 ″ self.gchart_bar_settings = "&chbh=30,15 ″ def 제목 (각자, 제목): self.gchart_title = self.gchart_title + 제목 def는 쓴다 (각자, 자료, 상표, max_t): self.gchart_data = self.gchart_data + data.rstrip (`, ') self.gchart_labels = self.gchart_labels \ + + "2 레테르를 붙인다: |Block%20Size|3: |Mb/s" self.gchart_axis_range = "&chxr=1,0," + str (max_t+10.0) self.gchart_scaling = "&chds=0," + str (max_t+10.0) self.gchart_url += self.gchart_type \ + self.gchart_title + self.gchart_size self.gchart_url += self.gchart_bar_settings \ + self.gchart_data + self.gchart_labels self.gchart_url += self.gchart_axis_labels \ + self.gchart_axis_position self.gchart_url += self.gchart_axis_range \ + self.gchart_scaling 오프너 = urllib2.urlopen (self.gchart_url) 만약에 opener.headers ["내용 유형인 경우에"]! = `심상 또는 png': 절상 BadContentTypeException (`서버 responded \ '%s의 내용 유형에 \ % opener.headers ["내용 유형"]) 여십시오 ("/tmp/dd.png", `wb').write (opener.read ()) def get_disk_throughput (장치, 블록 크기): 블록 크기 = str (블록 크기) + `k cmd = "dd if=/dev/zero of=%s bs=%s" % (장치, 블록 크기) 산출 = commands.getoutput (cmd) 처리량 = 0 단위 = "" output.split (`n')에 있는 선을 위해: s = re.search (`는 베꼈다. *, (\ S+) (\ S+) $ ', 선) 만약에 s인 경우에: 처리량 = s.group (1) 단위 = s.group (2) 틈 (처리량, 단위) __name == "__main" 돌려보내는 경우에: 사용법 = "사용법: %prog 선택권" 파서 = OptionParser (usage=usage) parser.add_option ("- d", "- 장치", dest=" 장치", \ help=" 사용할 것이다 장치. 디스크 자료는 겹쳐서 쓰일 것이다! ") (선택권, args) = parser.parse_args () 장치 = options.device 만약에 장치 아닙니다: parser.print_help ()

























