Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでコマンドラインからファイルに書き込む方法を徹底解説

Pythonを使ってコマンドラインからファイルに書き込むには、実行するスクリプトがコマンドライン引数(CLI引数)を受け取れるように作成しておく必要があります。Pythonでは標準ライブラリのsysモジュールに含まれるsys.argvを使うことで、簡単にコマンドライン引数を取得できます。

サンプルコード:ファイルへの追記

ここでは例として、「開いたファイルの末尾に『Hello』という文字列を追記する」プログラムを作成してみましょう。以下のコードをcat.pyという名前で保存します。

import sys

with open(sys.argv[1], 'a') as f:
    f.write("Hello")

コードのポイント

  • sys.argv[1]:コマンドラインで渡された最初の引数(ファイル名)を取得します。sys.argv[0]にはスクリプト名自体が格納されるため、実際の引数はインデックス1以降になります。
  • 'a'(appendモード):ファイルを追記モードで開きます。既存の内容は保持され、末尾に新しいデータが追加されます。上書きしたい場合は'w'モードを使用してください。
  • with文:処理終了後にファイルが自動的に閉じられるため、リソース漏れを防げます。

実行方法と結果の確認

ターミナル(コマンドプロンプト)から、対象のファイル名を引数として指定してスクリプトを実行します。

$ python cat.py my_file.txt

このコマンドを実行すると、my_file.txtcat.pyにCLI引数として渡され、変数argv[1](2番目のコマンドライン引数)に格納されます。その後、ファイルを開いて中身を確認すると、末尾に「Hello」という文字列が書き込まれていることが分かります。

応用:エラー処理を加えた安全な実装

実用的なスクリプトでは、引数が指定されなかった場合のエラー処理を入れておくと安心です。

import sys

if len(sys.argv) < 2:
    print("使い方: python cat.py <ファイル名>")
    sys.exit(1)

with open(sys.argv[1], 'a') as f:
    f.write("Hello")

print(f"{sys.argv[1]} に書き込みました")

このようにsys.argvopen()関数を組み合わせることで、コマンドラインから柔軟にファイル操作を行うPythonスクリプトを作成できます。

  1. コマンドラインからPythonモジュールを呼び出す方法

    コマンドラインからPythonモジュールを呼び出す基本方法 Pythonでスクリプトをモジュールとして作成する場合、その動作を手軽に確認する方法のひとつが、スクリプトの末尾に関数呼び出しを追加して実行することです。 1. スクリプトの末尾に関数呼び出しを追加する たとえば、次のように関数 fubar() を定義したスクリプトがあるとします。ファイルの最後に関数を呼び出すコードを記述します。 def fubar(): # 何か便利な処理を行う print(fubar が実行されました) fubar() 2. コマンドプロンプトから実行する ターミナル(コマンドプロンプト)で

  2. コマンドラインからPython関数を実行する方法を解説

    コマンドラインからPython関数を実行する方法Pythonで作成したモジュール内の関数を、わざわざスクリプトファイルを新しく作らずにコマンドラインから直接実行したい場面があります。そんなときに便利なのが、python コマンドの -c(command)オプションです。基本的な使い方例として、foobar.py というモジュールに sayHello() 関数が定義されているケースを考えます。この関数をコマンドラインから実行するには、以下のように -c オプションを使います。$ python -c import foobar; print(foobar.sayHello())-c の後ろには、実