参数是URL或路径

时间:2011-10-21 13:08:08

标签: python argv

Python当命令行应用程序采用一个参数

时,标准做法是什么?

网页的网址

磁盘上某处HTML文件的路径

(只有一个)

代码是否足够?

if "http://" in sys.argv[1]:
  print "URL"
else:
  print "path to file"

3 个答案:

答案 0 :(得分:15)

import urlparse

def is_url(url):
    return urlparse.urlparse(url).scheme != ""
is_url(sys.argv[1])

答案 1 :(得分:4)

取决于该计划必须做什么。如果只打印它是否有URL,sys.argv[1].startswith('http://')可能会这样做。如果您必须将URL实际用于有用的内容,请执行

from urllib2 import urlopen

try:
    f = urlopen(sys.argv[1])
except ValueError:  # invalid URL
    f = open(sys.argv[1])

答案 2 :(得分:1)

Larsmans可能会工作,但它不会检查用户是否实际指定了参数。

import urllib
import sys

try:
    arg = sys.argv[1]
except IndexError:
    print "Usage: "+sys.argv[0]+" file/URL"
    sys.exit(1)

try:
    site = urllib.urlopen(arg)
except ValueError:
    file = open(arg)