IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Lancer une commande automatiquement


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Lancer une commande automatiquement
    Bonjour à tous

    J'ai un petit soucis : je travail sur un Raspberry-Pi (donc dans un univers Linux) et j'ai installer Gdrive pour synchroniser mes fichiers stocké dans le R-pi sur mon compte Google Drive, ce qui me permet d'y avoir accès à distance. Sauf que cette synchronisation doit être faite manuellement, et c'est cela que j'aimerai changer : la rendre automatique serait bien plus agréable que d'ouvrir l'invite de commande et lancé manuellement la commande à chaque fois

    C'est ceci que j'aimerai automatisé via Python :
    cd /path/home/pi/google
    ./grive
    Donc je fais appelle à votre aide : est ce qu'il existe une commande permettant de lancer ce programme (ou cette commande, je ne sais pas exactement si "./grive" peut être considéré comme un programme vu qu'on a "/." ) automatiquement via python sans devoir utilisé l'invite de commande à chaque fois ?

    J'ai pensé à une boucle ("While...") mais après je ne sais pas qu'est ce que je pourrait utilisé pour lancé /.drive Un ami m'a parlé de os.popen, os.startfile et de system(r" ") mais étant débutant sur python, je ne sais pas laquelle de ses fonctions utilisés (étant donné qu'il a surement des différences entre celles-ci)... et surtout je ne sais pas comment les utilisés !

    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Quel intérêt d'utiliser Python pour exécuter deux lignes de commandes bash?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /path/home/pi/google
    ./grive
    Vous pourriez tout simplement les inclure dans un script bash.
    Et voilà, vous avez un programme facile à écrire et qui fonctionne (même s'il n'a pas été écrit en Python).

    Si vous voulez "automatiser" le lancement de ce programme, vous avez un utilitaire système qui s'appelle "cron".
    Il est fait pour çà. Il sait lancer un programme écrit dans n'importe quel langage toutes les heures, tous les jours,...

    Python est un langage de programmation à utiliser pour écrire des applications qui n'existent pas encore ou adapter le comportement d'applications existantes .
    Gérer les applications qui tournent, c'est le boulot du système d'exploitation via les utilitaires qui vont avec.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut

    En fait j'ai déjà un script python qui tourne à côté (pour récupéré des infos d'un capteur, puis les stocker dans un fichier qui serait ensuite récupéré par GDrive) donc c'est pour ça que lancer ce programme via Python m'intéresserait, ça me permettrait d'inclure quelques lignes de codes supplémentaires dans mon script déjà existant
    Après effectivement, mon prof de Sciences de l'ingénieur m'avais aussi conseiller d'utilisé cron ("crontab" d'après ce qu'il avait dit, mais c'est la même chose je pense) mais étant donné que je suis un peu nul en informatique, je préfère rester 'soft' et utiliser le seul language dont je connais à peu près toute les bases

    Mais si cron est réellement plus approprié pour la situation, où est ce que je dois taper ces deux lignes de commande bash ? Dans le logiciel cron directement ou dans un éditeur de programme/texte à part et le lancer par la suite avec Cron ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Pour crontab tu as une doc en français ici:
    http://doc.ubuntu-fr.org/cron

    Mais il s'agit là de programmer une commande à date et heure fixée, si ce que tu veux est de lancer le driver avec ton script, tu peux essayer avec ces lignes de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import os
     
    olddir = os.getcwd()
    os.chdir('/path/home/pi/google')
    os.system('./grive')
    os.chdir(olddir)
    Tu es sûr que c'est grive et pas gdrive ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Tu es sûr que c'est grive et pas gdrive ?
    Salut VinsS,

    Non, c'est bien grive : j'ai eu le même doute que toi avant d'installer le package pour vérifier.

    manpage de grive :

    GRIVE(1)                       Grive User Manual                      GRIVE(1)
    
    
    
    NAME
           grive - a Google Drive (online storage service) client.
    
    SYNOPSIS
           grive [options]
    
    DESCRIPTION
           grive allows the synchronization of all your files on the cloud with a
           directory of your choice and the upload of new files to Google Drive.
    
           This manual page was written for the Debian distribution because the
           original program does not have a manual page. Instead, it has
           documentation in the GNU info(1) format; see below.
    
    OPTIONS
           -a, --auth
               Requests authorization token from Google and sync to current
               directory.
    
           -d, --debug
               Enable debug level messages (implies -V).
    
           --dry-run
               Only detects which files are needed for download or upload without
               doing it.
    
           -f, --force
               Forces grive to always download a file from Google Drive instead
               uploading it.
    
           -h, --help
               Show the help message.
    
           -l FILENAME, --log=FILENAME
               set FILENAME as log output location instead standard output.
    
    AUTHOR
           José Luís Segura Lucas <josel.segura@gmx.es>
               Wrote this manpage for the Debian system.
    
    COPYRIGHT
           Copyright © 2012 José Luís Segura Lucas
    
           This manual page was written for the Debian system (and may be used by
           others).
    
           Permission is granted to copy, distribute and/or modify this document
           under the terms of the GNU General Public License, Version 2 or any
           later version published by the Free Software Foundation.
    
           On Debian systems, the complete text of the GNU General Public License
           can be found in /usr/share/common-licenses/GPL-2.
    
    
    
    
    grive                             12/26/2013                          GRIVE(1)
    
    @+.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ViveLaSi Voir le message
    Salut

    En fait j'ai déjà un script python qui tourne à côté (pour récupéré des infos d'un capteur, puis les stocker dans un fichier qui serait ensuite récupéré par GDrive) donc c'est pour ça que lancer ce programme via Python m'intéresserait, ça me permettrait d'inclure quelques lignes de codes supplémentaires dans mon script déjà existant
    Après effectivement, mon prof de Sciences de l'ingénieur m'avais aussi conseiller d'utilisé cron ("crontab" d'après ce qu'il avait dit, mais c'est la même chose je pense) mais étant donné que je suis un peu nul en informatique, je préfère rester 'soft' et utiliser le seul language dont je connais à peu près toute les bases

    Mais si cron est réellement plus approprié pour la situation, où est ce que je dois taper ces deux lignes de commande bash ? Dans le logiciel cron directement ou dans un éditeur de programme/texte à part et le lancer par la suite avec Cron ?
    Bonjour,

    Pour déclencher grive à la demande à partir d'un script Python, ces qqs lignes suffisent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
     
    import os
     
    os.system("cd /home/pi/google ; grive")
    Maintenant, si vous voulez quelque chose de plus sophistiqué, il vous reste

    ou alors la documentation officielle Python :

    os.popen : https://docs.python.org/3/library/os.html#os.popen

    subprocess.call : https://docs.python.org/3/library/su...ubprocess.call

    threading.Thread : https://docs.python.org/3/library/th...reading.Thread

    et sur google :

    linux cron : https://www.google.fr/#q=linux+cron

    @+.

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par ViveLaSi Voir le message
    Après effectivement, mon prof de Sciences de l'ingénieur m'avais aussi conseiller d'utilisé cron ("crontab" d'après ce qu'il avait dit, mais c'est la même chose je pense) mais étant donné que je suis un peu nul en informatique, je préfère rester 'soft' et utiliser le seul language dont je connais à peu près toute les bases

    Mais si cron est réellement plus approprié pour la situation, où est ce que je dois taper ces deux lignes de commande bash ? Dans le logiciel cron directement ou dans un éditeur de programme/texte à part et le lancer par la suite avec Cron ?
    VinsS a déjà répondu côté "bits and bytes".
    L'informatique est un vaste sujet: le point de vue de l'administrateur système est différent de celui de développeur d'application.
    Si vous ne savez que gazouiller quelques lignes de Python, ayez la patience d'apprendre.
    Et "apprendre" c'est du temps passé à se cogner la documentation, faire des essais sur votre Linux, ...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [system] lancer une commande dos
    Par romuluslepunk dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 20/08/2005, 11h54
  2. [C#] Lancer une commande systeme ?
    Par Oberown dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/07/2005, 11h29
  3. [Dos] Lancer une commande dos sans attendre la fin
    Par MrEddy dans le forum Windows
    Réponses: 4
    Dernier message: 09/06/2005, 17h38
  4. Lancer une commande en C.
    Par ronan99999 dans le forum Windows
    Réponses: 2
    Dernier message: 26/07/2004, 16h25
  5. Réponses: 1
    Dernier message: 30/04/2004, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo