Pythonでコマンドライン引数を使ってファイルを読み込む方法を解説
Pythonでコマンドラインからファイルを読み込む基本
Pythonを使ってコマンドラインからファイルを読み込みたい場合、実行するスクリプトがコマンドライン引数(CLI引数)を受け取れるようにする必要があります。Pythonでは、標準ライブラリのsysモジュールに含まれるsys.argvを使うことで、簡単にコマンドライン引数を取得できます。
具体例:catコマンドをPythonで作ってみる
ここでは、ファイルの内容をすべてターミナルに出力する「cat」コマンドをPythonで再現してみましょう。以下のようなプログラムを書くだけで実現できます。
import sys
with open(sys.argv[1], 'r') as f:
contents = f.read()
print(contents)スクリプトの実行方法
上記のコードをcat.pyという名前で保存し、次のようにコマンドラインから実行します。
$ python cat.py my_file.txt
このように実行すると、my_file.txtがCLI引数としてcat.pyに渡されます。渡された引数は変数argv[1](2番目のコマンドライン引数)に格納されるため、これを使って対象のファイルとその内容を取得できるのです。
ポイントのまとめ
sys.argvはリスト形式になっており、argv[0]にはスクリプト名自体が、argv[1]以降には実際に渡された引数が順番に入ります。なお、Python 2ではprint contentsのように括弧なしで記述できましたが、Python 3ではprint(contents)のように関数形式で書く必要がある点に注意しましょう。
-
コマンドラインからPythonモジュールを呼び出す方法
コマンドラインからPythonモジュールを呼び出す基本方法 Pythonでスクリプトをモジュールとして作成する場合、その動作を手軽に確認する方法のひとつが、スクリプトの末尾に関数呼び出しを追加して実行することです。 1. スクリプトの末尾に関数呼び出しを追加する たとえば、次のように関数 fubar() を定義したスクリプトがあるとします。ファイルの最後に関数を呼び出すコードを記述します。 def fubar(): # 何か便利な処理を行う print(fubar が実行されました) fubar() 2. コマンドプロンプトから実行する ターミナル(コマンドプロンプト)で
-
コマンドラインからPython関数を実行する方法を解説
コマンドラインからPython関数を実行する方法Pythonで作成したモジュール内の関数を、わざわざスクリプトファイルを新しく作らずにコマンドラインから直接実行したい場面があります。そんなときに便利なのが、python コマンドの -c(command)オプションです。基本的な使い方例として、foobar.py というモジュールに sayHello() 関数が定義されているケースを考えます。この関数をコマンドラインから実行するには、以下のように -c オプションを使います。$ python -c import foobar; print(foobar.sayHello())-c の後ろには、実