2012-02-29 14 views
14

Ho cercato su Google e sui suoi archivi. Ci sono molti buoni articoli, ma nessuno sembra aiutarmi. Quindi ho pensato di venire qui per una risposta più specifica.Python - Come si esegue un file .py?

L'obiettivo: voglio eseguire this code su un sito Web per ottenere tutti i file di immagini contemporaneamente. Risparmierà un sacco di puntamenti e clic.

Ho Python 2.3.5 su un computer Windows 7 x64. È installato in C: \ Python23.

Come ottengo questo script per "andare", per così dire?

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

WOW. 35k visualizzazioni. Visto che questo è risultato superiore su Google, ecco un link utile che ho trovato nel corso degli anni:

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

Per l'installazione, consultare esercizio 0.

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

FYI: Ho zero esperienze con Python. Tutto il consiglio sarebbe apprezzato.

Come richiesto, ecco il codice che sto utilizzando:

""" 
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 __name__ == "__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) 
+1

iniziare con the Python Tutorial: http://docs.python.org/tutorial/interpreter.html –

risposta

13

su piattaforma Windows, si hanno 2 scelte:

  1. In un terminale a riga di comando, digitare

    c: \ Python23 \ python xxxx.py

  2. Aprire l'editor python IDLE dal menu e apri xxxx.py, quindi premi F5 per eseguirlo.

Per il codice inviato, l'errore è in questa linea:

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

dovrebbe essere:

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

ho provato la prima, ha ricevuto il seguente messaggio di errore: C: \ Python23 \ python: Impossibile aprire il file 'dumpImages.py' Poi ho capito il mio errore: C: \ Python23 \ "dumpImages pitone. py " Quindi ho ricevuto un errore di sintassi: EOL durante la scansione di una stringa con quotatura singola. Che diamine vuol dire? Grazie! –

+0

Sembra che il tuo file .py abbia un formato errato. Per favore pubblica il tuo codice. – ciphor

+0

L'ho pubblicato per te. –

3

Dal momento che ti sembra di essere sulle finestre si può fare questo in modo python <filename.py>. Controlla che la cartella bin di Python sia nel tuo PATH, oppure puoi fare c:\python23\bin\python <filename.py>. Python è un linguaggio interpretativo e quindi è necessario l'interprete per eseguire il file, proprio come se fosse necessario Java runtime per eseguire un file jar.

+1

Quindi, dal tuo esempio sopra, questo dovrebbe funzionare? C: \ Python23 \ bin \ python \ dumpImages.py –

+0

Sarà c: \ python23 \ bin \ python dumpImages.py. Python.exe è l'interprete e il nome del file è dumpImages.py – Gangadhar

+0

OK. Ho capito come specificato. Sembra funzionare ... tuttavia viene eseguito estremamente rapidamente e non ha risultati. Ho fatto questo nel prompt cmd: set path =% path%; C: \ python23 Così ora posso accedere a python tramite cmd.exe. Immagino che il problema che ho ora è che non si richiedono parametri. Per quanto ne so, lo script prende due parametri: un url e una posizione sul mio hdd. Ogni volta che eseguo ith attraverso la shell python: dumpImages (http://www.google.com/, C: \ asdf \) Viene visualizzato un errore di sintassi non valido al punto e virgola dopo http. –

2

In genere è possibile fare doppio clic sul file .py in Esplora risorse per eseguirlo. Se questo non funziona, è possibile creare un file batch nella stessa directory con il seguente contenuto:

C:\python23\python YOURSCRIPTNAME.py 

quindi fare doppio clic su tale file batch. Oppure, puoi semplicemente eseguire quella riga nel prompt dei comandi mentre la tua directory di lavoro è la posizione del tuo script.

+1

Facendo doppio clic su un file '.py' su Windows verrà eseguito solo se si trova sul percorso di sistema. – Edwin

3

uso Editor IDLE {Si può già avere} ha interattivo shell per python e ti mostrerà l'esecuzione e il risultato.

0

Il comando deve includere il parametro url come indicato nei commenti di utilizzo dello script. La funzione principale dispone di 2 parametri, url e fuori (che è impostato su un valore di default) C: \ Python23 \ Python "C: \ PathToYourScript \ SCRIPT.py" http://yoururl.com "C: \ OptionalOutput \"

Problemi correlati