2012-02-29 60 views
14

我瀏覽了Google及其檔案。有幾篇很好的文章,但似乎沒有人能幫助我。所以我想我會來這裏作一個更具體的答案。Python - 你如何運行.py文件?

目標:我想在網站上運行this code以一次獲取所有圖片文件。它會節省大量的指點和點擊。

我在Windows 7 x64機器上安裝了Python 2.3.5。它安裝在C:\ Python23中。

如何讓這個腳本「走」,可以這麼說?

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

WOW。 35k次瀏覽。看到如何,這是在谷歌上面的結果,這裏是一個有用的鏈接,我發現這些年來:

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

有關設置,請參閱練習0

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

僅供參考:我對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 – 2012-02-29 03:16:25

回答

13

在Windows平臺上,你有2種選擇:

  1. 在命令行終端,輸入

    C:\ python23 \ python的xxxx.py

  2. 打開Python編輯器IDLE從菜單中打開xxxx.py,然後按F5運行它。

爲您發佈的代碼,錯誤的是在這一行:

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

它應該是:

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

我嘗試的第一個,收到以下錯誤信息: C:\ python23 \ python的:無法打開文件 'dumpImages.py' 然後我意識到我的錯誤: C:\ python23 \「蟒蛇dumpImages。 py「 然後,我收到語法錯誤: EOL掃描單引號字符串時。 這到底意味着什麼?謝謝! – 2012-02-29 03:49:40

+0

看來你的.py文件格式不正確。請發佈您的代碼。 – ciphor 2012-02-29 03:56:14

+0

我已經爲你發佈。 – 2012-02-29 04:03:19

3

既然你似乎是你可以做,所以python <filename.py>窗口。檢查Python的bin文件夾是否在PATH中,或者你可以執行c:\python23\bin\python <filename.py>。 Python是一種解釋性語言,所以你需要解釋器來運行你的文件,就像你需要java運行庫來運行一個jar文件一樣。

+1

那麼,從你上面的例子中,這應該工作? C:\ Python23 \ bin \ python \ dumpImages.py – 2012-02-29 03:22:51

+0

它將是c:\ python23 \ bin \ python dumpImages.py。 Python.exe是解釋器,文件名是dumpImages.py – Gangadhar 2012-02-29 03:28:46

+0

好的。我已經明白了。它似乎運行...但它運行速度非常快,沒有結果。我在cmd提示符下執行了這樣的操作: set path =%path%; C:\ python23 現在我可以通過cmd.exe訪問python了。 我猜我現在的問題是它不要求參數。據我所知,該腳本需要兩個參數:一個URL和我的硬盤上的位置。每當我通過python shell運行ith時: dumpImages(http://www.google.com/,C:\ asdf \) 在http後面的分號處出現無效的語法錯誤。 – 2012-02-29 03:37:08

2

通常你可以在Windows資源管理器中雙擊.py文件來運行它。如果這不起作用,可以在同一個目錄下創建一個批處理文件,其內容如下:

C:\python23\python YOURSCRIPTNAME.py 

然後雙擊那個批處理文件。或者,您可以簡單地在命令提示符下運行該行,而您的工作目錄是腳本的位置。

+1

雙擊Windows上的'.py'文件只會在系統路徑中運行。 – Edwin 2012-02-29 23:54:28

3

利用閒置的編輯器{您可能已經擁有了它}它具有互動shell for python,它會顯示你的執行和結果。

0

您的命令應包含腳本用法註釋中所述的url參數。 主要功能有2個參數,url和出(其被設定爲默認值) C:\ python23 \蟒 「C:\ PathToYourScript \ SCRIPT.py」 http://yoururl.com 「C:\ OptionalOutput \」

相關問題