11

Pythonコマンドライン アプリケーションで引数を 1 つ取る場合の標準的な方法は何ですか。

Web ページへの URL

また

ディスク上のどこかにある HTML ファイルへのパス

(唯一)

コードは十分ですか?

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

3 に答える 3

20
import urlparse

def is_url(url):
    return urlparse.urlparse(url).scheme != ""
is_url(sys.argv[1])
于 2013-03-30T01:43:20.460 に答える
3

プログラムが何をしなければならないかによって異なります。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])
于 2011-10-21T13:14:30.123 に答える
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)
于 2011-10-21T14:00:01.573 に答える