Un articolo recente in scomparto di Red Hat da Noah Gift e da Grig Gheorghiu chiamato “questo non è il vostro ordine di dd del grandpappy'd dimostrato come usare il pitone, il programma di utilità di dd e la tabella api del Google per produrre un diagramma a colonna che mostra il rendimento ai formati di blocco differenti. Tuttavia l'uscita dallo scritto del pitone era il non grafico reale ma un URL che allora avete dovuto incollare in un web browser per osservare la tabella risultante.
I benchè questo scritto fosse utile ma non ha voluto dovere tagliare ed incollare un URL in un web browser in modo da nell'io ha deciso di eliminare quel punto.
Questo scritto del pitone è basato senza bloccare sul loro scritto ma gli usi le biblioteche del urllib del pitone collegarsi a Google progetta per generare una lima di immagine del png che successivamente è visualizzata usando le procedure di pyGTK+. #! Re dell'importazione di ordini dell'importazione di OS dell'importazione del sistema dell'importazione del pitone di /usr/bin/env dal codice categoria DisplayGraph del gtk dell'importazione del pygtk pygtk.require ('dell'importazione dell'importazione urllib2 del urllib dell'importazione di OptionParser dell'importazione del optparse ′ 2.0): def delete_event (auto, widget, evento, data=None): il def falso di ritorno distrugge (auto, widget, data=None): __init del def di gtk.main_quit () (auto): self.window = gtk. Finestra (gtk.WINDOW_TOPLEVEL) self.window.connect (“delete_event„, self.delete_event) self.window.connect (“distrugga„, self.destroy) self.window.set_border_width (10) self.window.set_position (gtk.WIN_POS_CENTER) self.window.set_title (“rendimento del disc ") pixbuf = gtk.gdk.pixbuf_new_from_file (“/tmp/dd.png ") os.remove (“/tmp/dd.png ") self.image = gtk. Immagine () self.image.set_from_pixbuf (pixbuf) ow di self.image.sh () self.window.add (self.image) conduttura del def del ow di self.window.sh () (auto): codice categoria GoogleChart di gtk.main (): __init del def (auto): 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 = “titolo del def del ″ &chbh=30,15 (auto, titolo): self.gchart_title = self.gchart_title + il def di titolo scrivono (auto, dati, etichette, max_t): self.gchart_data = self.gchart_data + data.rstrip (`, ') self.gchart_labels = self.gchart_labels \ + identifica + “2: |Block%20Size|3: |Mb/s„ self.gchart_axis_range = “&chxr=1,0,„ + streptococco (max_t+10.0) self.gchart_scaling = “&chds=0,„ + streptococco (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 apri = urllib2.urlopen (self.gchart_url) se opener.headers [“soddisfare-tipo„]! = immagine/png': del ` aumento BadContentTypeException (responded dell'assistente del `\ 'con un soddisfare-tipo di %s \ % di opener.headers [“soddisfare-tipo„]) apra (“/tmp/dd.png„, `wb').write (opener.read ()) get_disk_throughput del def (dispositivo, formato di blocco): formato di blocco = streptococco (formato di blocco) + k del ` cmd = “dd if=/dev/zero of=%s bs=%s„ % (dispositivo, formato di blocco) uscita = commands.getoutput (cmd) rendimento = 0 unità = “„ per la linea in output.split (n') del `: s = re.search (`ha copiato. *, (\ S+) (\ S+) $ ', linea) se s: rendimento = s.group (1) unità = s.group (2) rottura rinvii (rendimento, unità) se == “__main„ del __name: uso = “uso: opzioni di %prog„ analizzatore = OptionParser (usage=usage) parser.add_option (“- d„, “- dispositivo„, del dest=„ del dispositivo„, \ dispositivo del help=„ da usare. I dati del disc saranno scritti sopra! ") (opzioni, args) = parser.parse_args () dispositivo = options.device se non dispositivo: parser.print_help ()

























