Ce poteau te montre comment accéder à de divers types d'information dans les dossiers de base de données de T/MN et de paquet de T/MN utilisant C et python.
|
|
||
|
Ce poteau te montre comment accéder à de divers types d'information dans les dossiers de base de données de T/MN et de paquet de T/MN utilisant C et python. IPython est une coquille interactive augmentée pour le python qui est très populaire au sein des communautés de la recherche scientifiques et. Ce poteau est une brève introduction à certains des dispositifs plus utiles de la coquille d'IPython. Un article récent en magazine de Red Hat par Noé Gift et Grig Gheorghiu appelé « ceci n'est pas votre commande de densité double de grandpappy'd démontrée comment employer le python, l'utilité et le diagramme api de densité double de Google pour produire un histogramme montrant la sortie à différentes longueurs de bloc. Cependant le rendement du manuscrit de python n'était pas le le graphique réel mais un URL que vous alors avez dû coller dans un web browser pour regarder le diagramme en résultant. I bien que ce manuscrit soit utile mais n'a pas voulu devoir couperer-coll un URL dans un web browser ainsi moi a décidé d'éliminer cette étape. Ce manuscrit de python est lâchement basé sur leur manuscrit mais les utilisations les bibliothèques d'urllib de python de se relier à Google dresse une carte pour produire d'un dossier d'image de png qui est plus tard montré utilisant des routines de pyGTK+. # ! Re d'importation de commandes d'importation d'OS d'importation de système d'importation de python de /usr/bin/env de classe DisplayGraph de gtk d'importation du pygtk pygtk.require ('d'importation de l'importation urllib2 d'urllib d'importation d'OptionParser d'importation d'optparse 2.0) : def delete_event (individu, gadget, événement, data=None) : le def faux de retour détruisent (individu, gadget, data=None) : __init de def de gtk.main_quit () (individu) : self.window = gtk. Fenêtre (gtk.WINDOW_TOPLEVEL) self.window.connect (« delete_event », self.delete_event) self.window.connect (« détruisez », self.destroy) self.window.set_border_width (10) self.window.set_position (gtk.WIN_POS_CENTER) self.window.set_title (« sortie de disque ") pixbuf = gtk.gdk.pixbuf_new_from_file (« /tmp/dd.png ") os.remove (« /tmp/dd.png ") self.image = gtk. Image () self.image.set_from_pixbuf (pixbuf) ow de self.image.sh () self.window.add (self.image) force de def d'ow de self.window.sh () (individu) : classe GoogleChart de gtk.main () : __init de def (individu) : 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 = « titre de def du &chbh=30,15 (individu, titre) : self.gchart_title = self.gchart_title + def de titre écrivent (individu, données, étiquettes, max_t) : self.gchart_data = self.gchart_data + data.rstrip (`, ') self.gchart_labels = self.gchart_labels \ + marque + « 2 : |Block%20Size|3 : |Mb/s » self.gchart_axis_range = « &chxr=1,0, » + streptocoque (max_t+10.0) self.gchart_scaling = « &chds=0, » + streptocoque (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 ouvreur = urllib2.urlopen (self.gchart_url) si opener.headers [« contenu-type »] ! = image de `/png': augmenter BadContentTypeException (responded de serveur de `\ 'avec un contenu-type de %s \ % d'opener.headers [« contenu-type »]) ouvrez-vous (« /tmp/dd.png », `wb').write (opener.read ()) get_disk_throughput de def (dispositif, longueur de bloc) : longueur de bloc = streptocoque (longueur de bloc) + k de ` cmd = « densité double if=/dev/zero of=%s bs=%s » % (dispositif, longueur de bloc) rendement = commands.getoutput (cmd) sortie = 0 unité = « » pour la ligne dans output.split (n') de `: s = re.search (le `a copié. *, (\ S+) (\ S+) $ ', ligne) si s : sortie = s.group (1) unité = s.group (2) coupure retournez (sortie, unité) si == « __main » de __name : utilisation = « utilisation : options de %prog » analyseur = OptionParser (usage=usage) parser.add_option (« - d », « - dispositif », de » dispositif » de dest= \ dispositif de help= » à employer. Des données de disque seront recouvertes ! ") (options, args) = parser.parse_args () dispositif = options.device sinon dispositif : parser.print_help () sys.exit (1) Ce poteau démontre comment changer des cordes de date/heure dans un fichier de consignation d'Apache Web Server de GMT/UTC à PST utilisant le module de pytz de python. |
||
|
Garantissez les droits d'auteur le © Finnbarr 2005-2012 P. Murphy. Tous droits réservés. |
||