Pythonを介して可変パラメータを使用してシェルスクリプトファイルを呼び出す方法

Pythonを介して可変パラメータを使用してシェルスクリプトファイルを呼び出す方法

Pythonコマンドでシェルスクリプトファイルを呼び出しています。Filename1ファイル名の実際の値を格納するためにスタンドアロンPythonプログラムによって作成された変数。Filenameここでは変数が機能しないので、次の2番目の文を実行するにはどうすればよいですか?実際のファイル名を保持すると、2番目の文を介してシェルスクリプトファイルが実行されます。

これを自動化する必要がありますが、実際のファイル名をハードコードすることはできません。したがって、2番目のステートメントの変数にアクセスする機会があると思います。

import os
os.system('sh uploadPDFContentFile.sh Filename1')

答え1

より良い使用サブプロセス基準寸法。

>>> subprocess.run(["ls", "-l"])  # doesn't capture output
CompletedProcess(args=['ls', '-l'], returncode=0)

subprocessモジュールは、新しいプロセスを作成し、結果を取得するためのより強力なツールを提供します。この機能よりもこのモジュールを使用する方が良いです。

ただし、文字列置換を使用できます。

call_with_args = "./script2.py '%s' '%s'" % (str(arg1), str(arg2))
os.system(call_with_args)

または文字列滞在

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'

関連情報