web-dev-qa-db-fra.com

Python - Comment lancez-vous un fichier .py?

J'ai regardé tout autour de Google et de ses archives. Il y a plusieurs bons articles, mais aucun ne semble m'aider. J'ai donc pensé venir ici pour une réponse plus précise.

L'objectif: Je veux exécuter ce code sur un site Web pour obtenir tous les fichiers d'image à la fois. Cela vous épargnera beaucoup de pointage et de clic.

J'ai Python 2.3.5 sur un ordinateur Windows 7 x64. Il est installé dans C:\Python23.

Comment puis-je obtenir ce script pour "aller", pour ainsi dire?

====================================

SENSATIONNEL. 35k vues. En tant que résultat optimal sur Google, voici un lien utile que j'ai trouvé au fil des ans:

http://learnpythonthehardway.org/book/ex1.html

Pour la configuration, voir exercice 0.

====================================

FYI: Je n'ai aucune expérience avec Python. Tout avis sera le bienvenu.

Comme demandé, voici le code que j'utilise:

"""
dumpimages.py
Downloads all the images on the supplied URL, and saves them to the
specified output file ("/test/" by default)

Usage:
    python dumpimages.py http://example.com/ [output]
"""

from BeautifulSoup import BeautifulSoup as bs
import urlparse
from urllib2 import urlopen
from urllib import urlretrieve
import os
import sys

def main(url, out_folder="C:\asdf\"):
    """Downloads all the images at 'url' to /test/"""
    soup = bs(urlopen(url))
    parsed = list(urlparse.urlparse(url))

    for image in soup.findAll("img"):
        print "Image: %(src)s" % image
        filename = image["src"].split("/")[-1]
        parsed[2] = image["src"]
        outpath = os.path.join(out_folder, filename)
        if image["src"].lower().startswith("http"):
            urlretrieve(image["src"], outpath)
        else:
            urlretrieve(urlparse.urlunparse(parsed), outpath)

def _usage():
    print "usage: python dumpimages.py http://example.com [outpath]"

if __== "__main__":
    url = sys.argv[-1]
    out_folder = "/test/"
    if not url.lower().startswith("http"):
        out_folder = sys.argv[-1]
        url = sys.argv[-2]
        if not url.lower().startswith("http"):
            _usage()
            sys.exit(-1)
    main(url, out_folder)
19
Mr. C

Sur la plate-forme Windows, vous avez 2 choix:

  1. Dans un terminal en ligne de commande, tapez 

    c:\python23\python xxxx.py

  2. Ouvrez l'éditeur python IDLE dans le menu, ouvrez xxxx.py, puis appuyez sur F5 pour l'exécuter.

Pour votre code posté, l'erreur est à cette ligne:

def main(url, out_folder="C:\asdf\"):

CA devrait etre:

def main(url, out_folder="C:\\asdf\\"):
17
ciphor

En général, vous pouvez double-cliquer sur le fichier .py dans l'Explorateur Windows pour l'exécuter. Si cela ne fonctionne pas, vous pouvez créer un fichier de commandes dans le même répertoire avec le contenu suivant:

C:\python23\python YOURSCRIPTNAME.py

Puis double-cliquez sur ce fichier de commandes. Vous pouvez également simplement exécuter cette ligne dans l'invite de commande pendant que votre répertoire de travail correspond à l'emplacement de votre script.

4
A.Midlash

Puisque vous semblez être sur Windows, vous pouvez le faire alors python <filename.py>. Vérifiez que le dossier bin de python est dans votre PATH, ou vous pouvez faire c:\python23\bin\python <filename.py>. Python est un langage d'interprétation et vous avez donc besoin de l'interpréteur pour exécuter votre fichier, tout comme vous avez besoin de Java Runtime pour exécuter un fichier jar.

3
Gangadhar

use IDLE Editor {Vous l’avez peut-être déjà} il a un shell interactif pour python et il vous montrera l’exécution et le résultat.

3
Junaid

Votre commande doit inclure le paramètre url indiqué dans les commentaires sur l'utilisation du script . La fonction principale comporte 2 paramètres, url et out (défini sur une valeur par défaut) C:\python23\python "C:\PathToYourScript\SCRIPT.py " http://yoururl.com " C:\OptionalOutput\"

0
James