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 :

Lancement d'un script


Sujet :

Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Lancement d'un script
    Bonjour à tous,

    J'ai récupérer un code exemple sur ce site qui pourra m'aider pas mal à manipuler des feuilles excel pour le programme que je réalise actuellement.
    Dans ce code il y a une class principale et des def.

    Cet exemple est lancé par la def suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if __name__=='__main__':
    ...
    C'est pas la première fois que je vois ça, et j'ai même du à un moment connaitre l'explication et l'utilité de ceci, mais là j'ai un gros trou de mémoire et je ne parviens pas à remettre la main sur le support où j'ai pu trouver de l'aide.

    Quelqu'un peut-il me rafraichir la mémoire, car s'il y a bien une chose que je ne supporte pas c'est d'utiliser quelque chose dont je ne comprend pas l'utilité...

    D'avance merci
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    hello,

    chaque fichier python (par exemple script.py) peut être utilisé comme script principal (celui qui va être lancé par la commande python script.py par exemple) ou comme module (par exemple import script).

    dans le premier cas ton fichier script.py aura pour variable __name__ la valeur "__main__".

    dans le second cas, il aura pour variable __name__ la valeur "script".

    la condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if __name__ == "__main__":
    ne sera donc remplie que si le script est utilisé comme script principal et pas s'il est importé depuis un autre script.

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 84
    Points : 86
    Points
    86
    Par défaut
    Moi j'ai une question par rapport a ce que tu dis au départ. Tu es arrivé à manipuler des fichiers Excel?Des fichiers XlS?J'ai tenté sans succès, par contre j'écris et lis très bien les fichiers CSV.

    Merci sinon pour ces précision car je m'en suis jamais préoccupé et jamais utilisé puisque ca marché sans.

    Le fait de définir un script comme princpale, est ce un moyen d'éviter des plantages lors d'un retour sur son applis en cours qui n'est pas pas forcément le script de départ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par Mugen RX Voir le message
    Moi j'ai une question par rapport a ce que tu dis au départ. Tu es arrivé à manipuler des fichiers Excel?Des fichiers XlS?J'ai tenté sans succès, par contre j'écris et lis très bien les fichiers CSV.
    Regarde ça... je pense que ça va te plaire. En tout cas moi ça me botte un max...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    # -*- coding: ISO-8859-1 -*-
     
    import win32com.client,win32com.client.dynamic
    from pywintypes import UnicodeType, TimeType
    import os
     
    class PyExcel:
        def __init__(self,filename=None):
            self.xlApp = win32com.client.dynamic.Dispatch('Excel.Application')
            if filename:
                    self.filename = filename
                    self.xlBook = self.xlApp.Workbooks.Open(filename)
            else:
                    self.xlBook = self.xlApp.Workbooks.Add()
                    self.filename=''
     
        def save(self, newfilename=None):
            if newfilename:
                    self.filename = newfilename
                    self.xlBook.SaveAs(newfilename)
            else:
                    self.xlBook.Save()
     
        def close(self):
            self.xlBook.Close(SaveChanges=0)
            del self.xlApp
     
        def show(self):
            self.xlApp.Visible=1
     
        def hide(self):
            self.xlApp.Visible=0
     
        def getCell(self, sheet, row, col):
            sht = self.xlBook.Worksheets(sheet)
            return sht.Cells(row, col).Value
     
        def setCell(self, sheet, row, col, value):
            sht = self.xlBook.Worksheets(sheet)
            sht.Cells(row, col).Value = value
     
        def getRange(self, sheet, row1, col1, row2, col2):
            sht = self.xlBook.Worksheets(sheet)
            return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value
     
        def setRange(self, sheet, leftCol, topRow, data):
            bottomRow = topRow + len(data) - 1
            rightCol = leftCol + len(data[0]) - 1
            sht = self.xlBook.Worksheets(sheet)
            sht.Range(
                sht.Cells(topRow, leftCol), 
                sht.Cells(bottomRow, rightCol)
                ).Value = data
     
        def getContiguousRange(self, sheet, row, col):
            sht = self.xlBook.Worksheets(sheet)
            # trouve la ligne du bas
            bottom = row
            while sht.Cells(bottom + 1, col).Value not in [None, '']:
                bottom = bottom + 1
            #trouve la col de droite
            right = col
            while sht.Cells(row, right + 1).Value not in [None, '']:
                right = right + 1
            return sht.Range(sht.Cells(row, col), sht.Cells(bottom, right)).Value
     
        def getActiveCell(self):
            r=self.xlApp.ActiveCell
            return r
     
        def mergeCells(self,sheet,row1,col1,row2,col2):
            sht = self.xlBook.Worksheets(sheet)
            sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Merge()
     
        def addSheet(self,Before='',After=''):
            if Before :
                pos=self.xlBook.Worksheets(Before)
                self.xlBook.Worksheets.Add(Before=pos)
            elif After:
                pos=self.xlBook.Worksheets(After)
                self.xlBook.Worksheets.Add(After=pos)
            else:
                self.xlBook.Worksheets.Add()
     
        def getActiveSheet(self):
            sheet=self.xlBook.ActiveSheet.Name
            return sheet
     
        def setActiveSheet(self,sheet):
            sht = self.xlBook.Worksheets(sheet)
            sht.Activate()
     
        def delSheet(self,sheet):
            sht = self.xlBook.Worksheets(sheet)
            sht.Delete()
     
        def renameSheet(self,sheet,newName):
            sht = self.xlBook.Worksheets(sheet)
            sht.Name=newName
     
        def moveSheet(self,sheet,Before='',After=''):
            sht = self.xlBook.Worksheets(sheet)
            if Before :
                pos=self.xlBook.Worksheets(Before)
                sht.Move(Before=pos)
            else:
                pos=self.xlBook.Worksheets(After)
                sht.Move(After=pos)
     
        def getSheets(self):
            lstSheets=[sheet.Name for sheet in self.xlBook.Worksheets]
            return lstSheets
     
        def copySheet(self,sheet,Before='',After=''):
            sht = self.xlBook.Worksheets(sheet)
            if Before :
                pos=self.xlBook.Worksheets(Before)
                newSht=sht.Copy(Before=pos)
            else:
                pos=self.xlBook.Worksheets(After)
                newSht=sht.Copy(After=pos)
     
        def setBorder(self,sheet,row1,col1,row2,col2,weight):
            sht = self.xlBook.Worksheets(sheet)
            ran=sht.Range(sht.Cells(row1,col1),sht.Cells(row2,col2))
            print ran
            ran.Borders.Weight=weight
     
     
    if __name__=='__main__':
        tableur=PyExcel()
        tableur.show()
        shts=tableur.getSheets()
        texte="éàèçùôØ"
        tableur.setCell('Feuil1',2,2,texte)
        tableur.setCell('Feuil2',1,1,texte)
        for f in shts:
            tableur.renameSheet(f,str(shts.index(f)))

    Citation Envoyé par kango Voir le message
    hello,

    chaque fichier python (par exemple script.py) peut être utilisé comme script principal (celui qui va être lancé par la commande python script.py par exemple) ou comme module (par exemple import script).

    dans le premier cas ton fichier script.py aura pour variable __name__ la valeur "__main__".

    dans le second cas, il aura pour variable __name__ la valeur "script".

    la condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if __name__ == "__main__":
    ne sera donc remplie que si le script est utilisé comme script principal et pas s'il est importé depuis un autre script.
    Merci pour cette réponse. Je comprend maintenant l'utilité.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/09/2006, 16h28
  2. [PL/SQL] [9i] Lancement d'un script
    Par ftrifiro dans le forum Oracle
    Réponses: 2
    Dernier message: 13/06/2006, 16h31
  3. [Mail] Lancement d'un script lié à un timer
    Par chtichokoko dans le forum Langage
    Réponses: 15
    Dernier message: 25/04/2006, 15h58
  4. Lancement d'un script
    Par Terminator dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 12/09/2005, 17h28
  5. lancement de plusieurs script sql
    Par gemini_010 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/08/2005, 10h38

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