2012-02-29 3 views
14

Я посмотрел вокруг Google и его архивы. Есть несколько хороших статей, но никто, кажется, не помогает мне. Поэтому я подумал, что приеду сюда для более конкретного ответа.Python - Как запустить файл .py?

Цель: Я хочу запустить this code на веб-сайте, чтобы сразу получить все файлы с картинками. Это сэкономит много указаний и щелчков.

У меня есть Python 2.3.5 на компьютере с Windows 7 x64. Он установлен в C: \ Python23.

Как я могу заставить этот сценарий «идти», так сказать?

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

WOW. 35k просмотров. Видя, как это верхний результат на Google, вот полезная ссылка я нашел на протяжении многих лет:

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

Для установки см упражнение 0.

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

FYI: У меня нет опыта работы с Python. Любой совет будет принят во внимание.

В соответствии с просьбой, вот код, я использую:

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

Пуск с Учебник Python: http://docs.python.org/tutorial/interpreter.html –

ответ

13

На платформе окон, у вас есть 2 варианта:

  1. В командной строке терминала, типа

    C: \ python23 \ питона xxxx.py

  2. Откройте редактор питона IDLE в меню и откройте xxxx.py, затем нажмите F5, чтобы запустить его.

Для Опубликованная кода, ошибка в этой строке:

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

Оно должно быть:

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

я попробовал первый, получил следующее сообщение об ошибке: C: \ python23 \ питона: не могу открыть файл 'dumpImages.py' Тогда я понял свою ошибку: C: \ python23 \ "питон dumpImages. py " Тогда я получил синтаксическую ошибку: EOL при сканировании строки с одной кавычкой. Что это значит? Благодаря! –

+0

Кажется, ваш .py-файл имеет неправильный формат. Отправьте свой код. – ciphor

+0

Я разместил его для вас. –

3

Так как вы, кажется, на окнах вы можете сделать это так python <filename.py>. Убедитесь, что папка bin python находится в вашем PATH, или вы можете сделать c:\python23\bin\python <filename.py>. Python - интерпретирующий язык, поэтому вам нужен интерпретатор для запуска вашего файла, так же, как вам нужно java runtime для запуска файла jar.

+1

Итак, из приведенного выше примера это должно работать? C: \ Python23 \ bin \ python \ dumpImages.py –

+0

Будет c: \ python23 \ bin \ python dumpImages.py. Python.exe является интерпретатором, а имя файла - dumpImages.py – Gangadhar

+0

Хорошо. У меня это как указано. Кажется, что он работает ... однако он работает очень быстро и не имеет никаких результатов. Я сделал это в командной строке: set path =% path%; C: \ python23 Теперь я могу получить доступ к python через cmd.exe. Я догадываюсь, что проблема у меня сейчас - это не просить параметры. Насколько я могу судить, сценарий принимает два параметра: url и местоположение на моем hdd. Всякий раз, когда я запускаю i-й через оболочку python: dumpImages (http://www.google.com/, C: \ asdf \) Я получаю недопустимую синтаксическую ошибку в точке с запятой после http. –

2

Обычно вы можете дважды щелкнуть файл .py в проводнике Windows, чтобы запустить его. Если это не работает, вы можете создать пакетный файл в том же каталоге, со следующим содержанием:

C:\python23\python YOURSCRIPTNAME.py 

Затем дважды щелкните этот пакетный файл. Или вы можете просто запустить эту строку в командной строке, в то время как ваш рабочий каталог является местом вашего скрипта.

+1

Двойной щелчок по файлу '.py' в Windows будет работать только в том случае, если он находится на системном пути. – Edwin

3

использование IDLE Editor {Возможно, вы уже его} имеет интерактивный shell для python, и он покажет вам выполнение и результат.

0

Ваша команда должна включать параметр url, как указано в комментариях к использованию сценария. Основная функция имеет 2 параметра, URL и выход (который устанавливается на значение по умолчанию) C: \ python23 \ питона "C: \ PathToYourScript \ script.py" http://yoururl.com "C: \ OptionalOutput \"

Смежные вопросы