見出し画像

コマンドラインのコマンドを作ってみる

(Python学習初心者の試行錯誤・備忘録です)
コマンドラインのコマンドを作ってみたい。つまり、
>copy a.txt b.txt
みたいな感じで
>コマンド 元ファイル名 処理結果ファイル名
と打ち込んで使うヤツ。MSーDOS 時代を思い出すあれです。

コマンドライン引数の取得方法

Copilotに聞いたら、説明と例をくれました。

まあ、引数可変で無くて、決め打ちならenumerate とか要らなくて、直接 sys.argv[1],sys.argv[2]
で取れるようです。

import sys
n=len(sys.argv)
print(n)
if n==3:
    print(sys.argv[0])
    print(sys.argv[1])
    print(sys.argv[2])

というargtest.py というファイルを作って
>python argtest.py a.txt b.csv とコマンドラインから実行すると

3
argtest.py
a.txt
b.csv

と出力されます。exeファイル化はPyInstallerのインストールが完了している環境でpythonファイルがあるところへ行って、
>pyinstaller (pythonファイル名) --onefile
を実行すればいい。
>pyinstaller argtest.py --onefile
buildフォルダとdist フォルダが作られて、完成品のexeファイルはdistフォルダに入っています。移動して

>argtest a.txt b.csv

エラーだ(´;ω;`) コマンドを信頼するなら .\ を頭につけてみろとある。
>.\argtest a.txt b.csv
これで動作しました。コマンドの「信頼」確認のため、ひと手間必要になるんですね。

(追記)「PowerShell」ではなくて「コマンドプロンプト」の上であれば、.\をつけなくてもそのまま実行できました。「PowerShell」と「コマンドプロンプト」、この二つの違いも理解していないせいで変なこと書いていたかもしれません。


この記事が気に入ったらサポートをしてみませんか?