2012-02-29 20 views
14

He buscado en Google y sus archivos. Hay varios artículos buenos, pero ninguno parece ayudarme. Así que pensé en venir aquí para obtener una respuesta más específica.Python: ¿cómo se ejecuta un archivo .py?

El objetivo: Quiero ejecutar this code en un sitio web para obtener todos los archivos de imágenes a la vez. Ahorrará un montón de apuntar y hacer clic.

Tengo Python 2.3.5 en una máquina con Windows 7 x64. Está instalado en C: \ Python23.

¿Cómo puedo obtener este script para "ir", por así decirlo?

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

WOW. 35k vistas. En vista de que esta es la parte superior resultado en Google, aquí hay un vínculo útil he encontrado en los últimos años:

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

Para la configuración, consulte el ejercicio 0.

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

FYI: Tengo cero experiencia con Python. Cualquier consejo sería apreciado.

a lo solicitado, aquí está el código que estoy usando:

""" 
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

Start con el Tutorial de Python: http://docs.python.org/tutorial/interpreter.html –

Respuesta

13

en la plataforma Windows, tienes 2 opciones:

  1. En un terminal de línea de comandos, tipo

    c: \ python23 \ xxxx.py pitón

  2. Abra el editor de IDLE de Python desde el menú, y abra xxxx.py, luego presione F5 para ejecutarlo.

Para su código publicado, el error está en esta línea:

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

que debe ser:

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

probé el primero de ellos, recibió el siguiente mensaje de error: C: \ python23 \ Python: No se puede abrir el archivo 'dumpImages.py' Entonces me di cuenta de mi error: C: \ python23 \ "dumpImages pitón. py " Luego recibí un error de sintaxis: EOL al escanear cadenas de una sola cita. ¿Qué diablos significa eso? ¡Gracias! –

+0

Parece que su archivo .py tiene un formato incorrecto. Por favor publique su código. – ciphor

+0

Lo he publicado para ti. –

3

Ya que parece estar en ventanas que se pueden hacer esto para python <filename.py>. Verifique que la carpeta bin de python esté en su PATH, o puede hacer c:\python23\bin\python <filename.py>. Python es un lenguaje interpretativo, por lo que necesita el intérprete para ejecutar su archivo, al igual que necesita el tiempo de ejecución de Java para ejecutar un archivo jar.

+1

Entonces, de su ejemplo anterior, ¿esto debería funcionar? C: \ Python23 \ bin \ python \ dumpImages.py –

+0

Será c: \ python23 \ bin \ python dumpImages.py. Python.exe es el intérprete y el nombre del archivo es dumpImages.py – Gangadhar

+0

De acuerdo. Lo tengo como se especifica. Parece que se ejecuta ... sin embargo, funciona muy rápido y no tiene resultados. Hice esto en el indicador de cmd: establecer path =% path%; C: \ python23 Así que ahora puedo acceder a python a través de cmd.exe. Supongo que el problema que tengo ahora es que no está pidiendo parámetros. Por lo que puedo decir, el script toma dos parámetros: una url y una ubicación en mi disco duro. Cada vez que ejecuto iith a través del shell de python: dumpImages (http://www.google.com/, C: \ asdf \) Recibo un error de sintaxis no válida en el punto y coma después de http. –

2

Por lo general, puede hacer doble clic en el archivo .py en el Explorador de Windows para ejecutarlo. Si esto no funciona, puede crear un archivo por lotes en el mismo directorio con el siguiente contenido:

C:\python23\python YOURSCRIPTNAME.py 

A continuación, haga doble clic en el archivo por lotes. O bien, simplemente puede ejecutar esa línea en el símbolo del sistema, mientras que su directorio de trabajo es la ubicación de su secuencia de comandos.

+1

Al hacer doble clic en un archivo '.py' en Windows solo se ejecutará si está en la ruta del sistema. – Edwin

3

uso Editor IDLE {Puede que ya tenga it} tiene interactivo Shell para Python y le mostrará la ejecución y el resultado.

0

Su comando debe incluir el parámetro url como se indica en los comentarios de uso del script. La función principal tiene 2 parámetros, el URL y fuera (que se establece en un valor por defecto) C: \ python23 \ Python "C: \ PathToYourScript \ SCRIPT.py" http://yoururl.com "C: \ OptionalOutput \"

Cuestiones relacionadas