質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

751閲覧

コマンドライン引数に渡して実行するにはどうしたらいいか

Brot

総合スコア23

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/07/26 03:16

前提

退屈なことはpythonにやらせようという書籍で、コマンドラインやクリップボードから調べたい住所を取得し、その住所のGoogleMapのページをWebブラウザで開くというものがあり、それをやっています。
クリップボードから住所を開くことはできましたが、コマンドラインから住所を取得するにはどうすればいいかがわかりません。書籍には以下のプログラムをC:> mapit 870 Valencia St, San Francisco, CA 94110をコマンドラインで実行できるように設定してくださいとだけ書いてあるのですが、どう設定すればいいのでしょうか?
コマンドラインや環境変数などの理解が浅いのもあると思うので、ご教授願いたいです。

実現したいこと

コマンドラインから住所を取得して、その住所のGoogleMapのページをWebブラウザを開く。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

python

1 2#! python3 3# mapIt.py -commandline, clipboardに指定した住所の地図を開く 4 5import webbrowser, sys, pyperclip 6 7if len(sys.argv) > 1: 8 #commandlineから住所を取得する 9 address = ' '.join(sys.argv[1:]) 10else: 11 #clipboardから住所を取得する 12 address = pyperclip.paste() 13 14webbrowser.open('https://www.google.com/maps/place/' +address)

試したこと

補足情報(FW/ツールのバージョンなど)

Windows11 Python 3.10.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2022/07/26 03:34

現状のコードではどういうふうになるんでしょうか
otn

2022/07/26 03:35

> クリップボードから住所を開くことはできましたが これは具体的にどういう操作をしたのでしょうか?
jbpb0

2022/07/26 04:05

mapIt.py」が「C:\aaa\bbb」にあるとして以下説明しますので、質問者さんの環境の実際のファイル名やパスに置き換えてください コマンドプロンプトで下記を実行したら、どうなりますでしょうか? cd /d C:\aaa\bbb python mapIt.py 870 Valencia St, SanFrancisco, CA 94110
Brot

2022/07/26 04:21

クリップボードから住所を開くことはできましたが >住所をクリップボードにコピーし、コマンドプロンプトにてpython mapIt.pyを実行したらできました。 cd /d C:\aaa\bbb python mapIt.py 870 Valencia St, SanFrancisco, CA 94110 >こちらでも同様にできました。
jbpb0

2022/07/26 05:14 編集

python mapIt.py 870 Valencia St, SanFrancisco, CA 94110 の「870 Valencia St, SanFrancisco, CA 94110」が「コマンドライン引数」ですから、 > コマンドラインから住所を取得 ができてます
Brot

2022/07/26 05:23

そうなんですね!書籍では、コマンドラインで実行できるように設定してください。のところでpythonスクリプトを実行するためにバッチファイルを作るページに誘導されたので、環境変数の設定などが必要かと思っていました。 コマンドラインについてもっと自分で調べてみたいと思います。ありがとうございます。
guest

回答2

0

ベストアンサー

C:> mapit 870 Valencia St, San Francisco, CA 94110をコマンドラインで実行できるように設定してくださいとだけ書いてあるのですが、どう設定すればいいのでしょうか?

mapit.pyというPythonプログラムファイルがあるとして、mapitと入力して実行できるためには2つの設定が必要です。
・拡張子pyに、実行したいpython.exeが関連付いていること
・環境変数PATHEXT.pyが含まれていること

Python公式サイトからダウンロードしたインストーラーでインストールした場合は、拡張子pypy.exeが関連付いていてpy.exeからpython.exeが起動されるはずなので、mapit.pyと言うファイルが今のカレントディレクトリに存在するなら、mapit.py 870 Valencia St, San Francisco, CA 94110で実行できるはずです。

mapit.pyで実行できるのにmapitで実行できない場合は、環境変数PATHEXTに設定がないと言うことなので、環境変数設定でPATHEXTの値を編集して末尾に;.PY;.PYWを追加します。

投稿2022/07/26 05:44

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Brot

2022/07/27 01:33

納得しました。環境変数PATHEXTで設定すると拡張子なしでも開けるようになるということですね。 的確な説明をありがとうございました。
guest

0

とりあえず、
C:> mapit "870 Valencia St, San Francisco, CA"
としてみてください

投稿2022/07/26 04:24

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Brot

2022/07/26 04:47

ありがとうございます。そのように入力すると 'mapit' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。と出ます。
y_waiwai

2022/07/26 05:34

あれ?それじゃ今までどうやって実行させてたんでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問