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

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

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

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

Q&A

解決済

2回答

3074閲覧

sys.argvの中には具体的に何が入っているのですか?

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

0クリップ

投稿2018/04/26 22:36

お世話になります。
「退屈なことはpythonにやらせよう」の209ページを学んでいます。

以下のようなコードがありました。

#! python3 # mcb.pyw - クリップボードのテキストを保存・復元 # Usage: # py.exe mcb.pyw save <keyword> - クリップボードをキーワードに紐づけて保存 # py.exe mcb.pyw <keyword> - キーワードに紐付けられたテキストをクリップボードにコピー # py.exe mcb.pyw list - 全キーワードをクリップボードにコピー import shelve, pyperclip, sys mcb_shelf = shelve.open('mcb') # クリップボードの内容を保存 if len(sys.argv) == 3 and sys.argv[1].lower() == 'save': mcb_shelf[sys.argv[2]] = pyperclip.paste() elif len(sys.argv) == 2: # TODO: キーワード一覧と内容の読み込み mcb_shelf.close()

このsys.argvの中には具体的に何が入っているのですか?
要素の個数が3のときは◯◯、2のときは◯◯と分岐しているようですが・・・。
sys.argvの中に入っている具体的内容と、何をしようとしているのかが知りたいです。

よろしくお願いいたします。

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

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

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

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

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

HayatoKamono

2018/04/27 03:45 編集

「質問をするときのヒント」というページがありますので、こちらのページを熟読し内容を理解した上で、次回から質問をする際は記載されているアドバイスを参考に質問文を作成されると、より多くの回答、より適切な回答がつきやすくなると思います。https://teratail.com/help/question-tips
guest

回答2

0

ベストアンサー

プログラムを実行したときのコマンドライン文字列を単語毎に分割したものが格納されています。
配列の先頭要素にはプログラム自身が格納されます。
実際にコマンドを実行すると以下のようになるはず。

sh

1$ py.exe mcb.pyw save hogehoge 2 3argv[0] = 'mcb.pyw' 4argv[1] = 'save' 5argv[2] = 'hogehoge'

sh

1$ py.exe mcb.pyw hogehoge 2 3argv[0] = 'mcb.pyw' 4argv[1] = 'hogehoge'

sh

1$ py.exe mcb.pyw list 2 3argv[0] = 'mcb.pyw' 4argv[1] = 'list'

質問文を書いている時間より、コードコピペして実行して結果を見るのにかかる時間のほうが短いと思います。

投稿2018/04/26 22:48

編集2018/04/26 22:51
tkmtmkt

総合スコア1800

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

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

退会済みユーザー

退会済みユーザー

2018/04/27 00:41

ありがとうございます 本に出てきたコマンドライン云々というのがよくわからず、実行の仕方もわからなかったのですが、回答いただいた内容で何とか自分でできそうです。 試してみます。
退会済みユーザー

退会済みユーザー

2018/04/27 00:53

(追記、メモです) Anacondaを入れているので、ネットで調べてもpy~で動かずに困ることが多々あります。 これで正しいのかはわかりませんが、実際にやってみた内容を書きます。 print(sys.argv[0]) print(sys.argv[1]) print(sys.argv[2]) とコードの中に書く。 あとは教えていただいた内容を参考に、コマンドプロンプトで python mcb.pyw save hogehoge と実行すると mcb.pyw save hogehoge の3つが出力されました。
guest

0

それそのまま、「sys.argv」でぐぐると解説がいろいろ出てきますぜ

投稿2018/04/27 01:39

y_waiwai

総合スコア87774

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

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

退会済みユーザー

退会済みユーザー

2018/04/27 01:42 編集

はい、私もググらなかったわけではないのですが 解説がいろいろありすぎて「具体的に何が入っているのか」が不明だったので質問してみました。
y_waiwai

2018/04/27 01:45

ぐぐる技術というのも、スキルの一つです まあ、間違った情報にあたってしまうということもあるので、自分で確認するというのも忘れずに
退会済みユーザー

退会済みユーザー

2018/04/27 02:11 編集

コメント有り難いですが、正直イマイチ感心しません。 素人相手に「ググるのもスキルです」一言で終わらせるのは生産的ではない気がします。回答にもなっていませんし。 努力していない人はいませんよ。
y_waiwai

2018/04/27 02:20

>努力していない人はいませんよ。 よのなか、自分の想定する上を行く人(下?)は常に存在するもんです 私は、質問に回答する場合、アドバイスを与える場合、質問者はドシロートという想定をすることを常に心がけています #まあ、こんな短い質問文だけでスキルを推し量るなんてできないですもんね 今回はその読みが外れたということですが、当たるときもたまにはあったりするもんです
退会済みユーザー

退会済みユーザー

2018/04/27 02:42 編集

仰っている意味が正直よくわからないです。 一つだけ言える確かなことは、「ググれ」で終了してしまうのならteratailは要らない、ということだと思います。「ググるのもスキル」は確かに正論で真理ですが、今すぐにはどうしようもないことですし、この場では意味のないことです。 ベストアンサーの方の回答は非常に有用ですが、この回答へのこの長く続くコメントには、あまり価値が無いと思います。もうやめませんか?
y_waiwai

2018/04/27 02:49

まあ、理解できないのは仕方がないです。 わたしも同意見です。もうやめましょう。
退会済みユーザー

退会済みユーザー

2018/04/27 03:13 編集

はい、最後にしますが まるで私が理解できないのが100%悪いみたいに仰るのはどうかと思います。あなたの回答の仕方で「理解しなさい」というのが、そもそも無理です。 そのような態度からは何も良いものは生まれないということを、あなたも学ぶべきです。 あなたはプログラミングの技術では私より上なのでしょうが、日本語の使い方と人の気持ちがわからない部分に関しては私より下だと思います。 今後は他の方へ思いやりを持って接してあげてくださいね。 それでは。
y_waiwai

2018/04/27 03:14

だれも悪いと言ってませんがなw あなたが聞いてるので答えているだけです。 今後はこれを教訓にもう少し厳しい態度で接しようとも思いましたが、やめときますね。 それでは。
退会済みユーザー

退会済みユーザー

2018/04/27 03:20 編集

??? もう少し紳士的な方だと思っていましたが、素が出てきたのでしょうか。 言葉に気をつけられたほうがよろしいと思います。
y_waiwai

2018/04/27 03:22

もう少し真面目な方だと思いましたが、素がでてきたのでしょうか。 言葉に気をつけられたほうがよろしいかと思います
退会済みユーザー

退会済みユーザー

2018/04/27 03:24

それは幼稚ですよ(笑)
y_waiwai

2018/04/27 03:25

はい。幼稚ですね。もうちょっと成長しましょう
退会済みユーザー

退会済みユーザー

2018/04/27 03:26

気が済みましたか? もうやめましょう。
y_waiwai

2018/04/27 03:27

だからやめましょうよ(二回目
退会済みユーザー

退会済みユーザー

2018/04/27 03:29

気が済みましたか? もうやめましょう。
y_waiwai

2018/04/27 03:31

あらあら、まだ続けますか。しかたがないですねえ
退会済みユーザー

退会済みユーザー

2018/04/27 03:40

私に諭されたことでご立腹だとは思うのですが、このような書き込みは感心しません。
y_waiwai

2018/04/27 03:42

わたしの回答が理解できなくてご立腹だとは思いますが、このような書き込みは関心しませんねー
退会済みユーザー

退会済みユーザー

2018/04/27 03:46

プログラミングの先輩として全く尊敬できない方に出会ってしまい、大変残念です。
y_waiwai

2018/04/27 03:47

プログラミングの先輩として、情けない後輩に出会ってしまいました。大変残念ですw
退会済みユーザー

退会済みユーザー

2018/04/27 03:56

はい、残念です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問