2012-02-29 59 views
14

Tôi đã xem toàn bộ Google và các lưu trữ của Google. Có một số bài viết hay, nhưng dường như không có gì giúp tôi. Vì vậy, tôi nghĩ tôi sẽ đến đây để có câu trả lời cụ thể hơn.Python - Làm cách nào để bạn chạy tệp .py?

Mục tiêu: Tôi muốn chạy this code trên trang web để nhận tất cả các tệp hình ảnh cùng một lúc. Nó sẽ tiết kiệm rất nhiều chỉ và nhấp chuột.

Tôi đã có Python 2.3.5 trên máy tính Windows 7 x64. Nó được cài đặt trong C: \ Python23.

Làm cách nào để nhận tập lệnh này "chuyển", vậy nên nói?

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

WOW. 35k lượt xem. Thấy như thế nào điều này là kết quả hàng đầu trên Google, đây là một liên kết hữu ích tôi tìm thấy trong những năm qua:

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

Đối với thiết lập, xem tập 0.

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

FYI: Tôi không có kinh nghiệm với Python. Lời khuyên nào sẽ được đánh giá cao.

Theo yêu cầu, đây là đoạn code tôi đang sử dụng:

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

Bắt đầu với Hướng dẫn Python: http://docs.python.org/tutorial/interpreter.html –

Trả lời

13

Trên nền tảng các cửa sổ, bạn có 2 lựa chọn:

  1. Trong một thiết bị đầu cuối dòng lệnh, gõ

    c: \ python23 \ python xxxx.py

  2. Mở editor python IDLE từ trình đơn và mở xxxx.py, sau đó nhấn F5 để chạy nó.

Đối với mã mà bạn đã viết, lỗi là tại dòng này:

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

Nó nên là:

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

tôi đã cố gắng đầu tiên, nhận được thông báo lỗi sau: C: \ python23 \ python: không thể mở tập tin 'dumpImages.py' Sau đó, tôi nhận ra sai lầm của tôi: C: \ python23 \ "dumpImages python. py " Sau đó, tôi đã nhận được lỗi cú pháp: EOL khi quét chuỗi được trích dẫn một lần. Điều đó có nghĩa là gì? Cảm ơn! –

+0

Dường như tệp .py của bạn có định dạng sai. Vui lòng đăng mã của bạn. – ciphor

+0

Tôi đã đăng nó cho bạn. –

3

Vì bạn dường như trên cửa sổ bạn có thể làm điều này để python <filename.py>. Kiểm tra xem thư mục bin của python có nằm trong PATH của bạn hay không hoặc bạn có thể làm c:\python23\bin\python <filename.py>. Python là một ngôn ngữ diễn giải và do đó bạn cần người phiên dịch để chạy tệp của bạn, giống như bạn cần thời gian chạy java để chạy tệp jar.

+1

Vì vậy, từ ví dụ của bạn ở trên, điều này sẽ hoạt động? C: \ Python23 \ bin \ python \ dumpImages.py –

+0

Nó sẽ là c: \ python23 \ bin \ python dumpImages.py. Python.exe là người diễn giải và tên tệp là dumpImages.py – Gangadhar

+0

Được rồi. Tôi đã có nó như được chỉ định. Nó xuất hiện để chạy ... tuy nhiên nó chạy rất nhanh và không có kết quả. Tôi đã làm điều này trong dấu nhắc cmd: đường dẫn thiết lập =% đường dẫn%; C: \ python23 Vì vậy, bây giờ tôi có thể truy cập python qua cmd.exe. Tôi đoán sự cố hiện tại của tôi là không yêu cầu tham số. Theo như tôi có thể nói, kịch bản có hai tham số: một url và một vị trí trên hdd của tôi. Bất cứ khi nào tôi chạy ith thông qua vỏ trăn: dumpImages (http://www.google.com/, C: \ asdf \) Tôi nhận được lỗi cú pháp không hợp lệ tại dấu chấm phẩy sau http. –

2

Thông thường bạn có thể bấm đúp vào tệp .py trong Windows explorer để chạy nó. Nếu điều này không làm việc, bạn có thể tạo một tập tin thực thi trong cùng thư mục với các nội dung sau:

C:\python23\python YOURSCRIPTNAME.py 

Sau đó kích đúp vào tập tin batch. Hoặc, bạn có thể chỉ cần chạy dòng đó trong dấu nhắc lệnh trong khi thư mục làm việc của bạn là vị trí của tập lệnh của bạn.

+1

Nhấp đúp vào tệp '.py' trên Windows sẽ chỉ chạy nó nếu nó nằm trên Đường dẫn Hệ thống. – Edwin

3

sử dụng IDLE Editor {Bạn đã có thể có nó} nó có tương tác shell cho python và nó sẽ hiển thị cho bạn thực hiện và kết quả.

0

Lệnh của bạn nên bao gồm thông số url như đã nêu trong các nhận xét về sử dụng tập lệnh. Chức năng chính có 2 tham số, url và out (được đặt thành giá trị mặc định) C: \ python23 \ python "C: \ PathToYourScript \ SCRIPT.py" http://yoururl.com "C: \ OptionalOutput \"

Các vấn đề liên quan