Python
当我有一个命令行应用程序采用一个参数时,标准做法是什么
网页的 URL
或者
磁盘上某处的 HTML 文件的路径
(只有一个)
代码足够了吗?
if "http://" in sys.argv[1]:
print "URL"
else:
print "path to file"
import urlparse
def is_url(url):
return urlparse.urlparse(url).scheme != ""
is_url(sys.argv[1])
取决于程序必须做什么。如果它只是打印它是否有一个 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])
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)