【挑戦】Pythonのコマンドラインからの実行でつまづいた【4日目】

3日坊主にならなくて済みそうです。

昨日はURLにパラメータを付けてWEBサイトから情報を取ってみましたが、今日は同じ事をコマンドラインから行います。

スポンサーリンク

この本に沿って進めています



URLにパラメータを付けて情報を取ってみる

昨日と同様、パラメータを付けてリクエストするコードですが、本のコードが面白そうなので、そのまま書いてみます。

百人一首を検索するAPIのエントリーポイント。

パラメータは2つ

パラメータ意味
fmt検索結果の形式をini|xml|jsonで指定
key検索キーワードを指定
#!use/bin/env python3

#ライブラリ読み込み
import sys
import urllib.request as req
import urllib.parse as parse

#コマンドライン引数を得る
if len(sys.argv) <= 1:
print("USAGE: hyakunin.py(keyword)")
sys.exit()
keyword = sys.argv[1]

#パラメータをURLエンコードする
API = "https://*************************/get.php"
query = {
"fmt": "ini",
"key": keyword
}
prams = parse.urlencode(query)

#リクエスト用のURLを生成
url = API + "?" + params
print("url=",url)

#ダウンロード
with req.urlopen(url) as r:
b = r.read()
data = b.decode("utf-8")
print(data)

はい、実行!

どん!

百人一首検索 実行結果

あれ?違う。

2つ分かっているのは最初の分のurlの最後が、昨日やったznの郵便番号がパラメータになってるのと、もう1つはコマンドラインから実行していないこと。

jupyterからとりあえず実行したので、仕方がない。

郵便番号は何だろう?と思ってさかのぼっていくとkeywordのところで入ってないからか?と予想。

コマンドラインでつまずいた

本の中にはコマンドプロンプトで実行する方法は記載されていなかった。

ネットでググる。

見たサイトが古かったのか、コマンドプロンプトからpy.exeを起動と。しかし実行できず。

調べた結果、私のPCではanaconda3の中のpython.exeと同じだろうということになった。

C:Usersuser1Anaconda3>python.exe

hyakunin.pyはテキストファイルに書いて.pyで保存すると良いのか?

初心者にとっては、最初の壁になるかも知れない。

解決

結局、python.exeからhyakunin.pyを指定して実行した。

python.exeとhyakunin.pyは同じフォルダに入れてあげた。

python.exeとhyakunin.pyは
同じフォルダに

それでもって、プロンプトから実行

プロンプトから実行

でた!

構文は何とかなったが、実行の仕方で苦労するとは思わなかった。

基本が出来ていないので、スクールもありかもしれない。

タイトルとURLをコピーしました