概要
- 指定されたディレクトリにある全てのスクリプトファイルの〇〇行目に特定の行を追加するコードを紹介します。
サンプルコード解説
- 以下、指定されたディレクトリにある全てのスクリプトファイル(.sh)の14行目に
"request_id": "${RANDOM_NO}",
を追加するPythonコードです。
import os
def add_line_to_scripts(script_directory):
script_files = sorted([f for f in os.listdir(script_directory) if f.endswith('.sh')])
for script_file in script_files:
script_path = os.path.join(script_directory, script_file)
lines = []
with open(script_path, 'r') as f:
lines = f.readlines()
lines.insert(13, '\t"request_id": "${RANDOM_NO}",\n')
with open(script_path, 'w') as f:
f.writelines(lines)
# スクリプトファイルが格納されているディレクトリを指定
script_directory = 'response_json_files'
add_line_to_scripts(script_directory)
add_line_to_scripts
関数について
-
sorted()
関数は、リスト内の要素を昇順にソートする(スクリプトファイルを順番に処理するため) -
os.listdir
関数を使用して、指定されたディレクトリ内のファイルのリストを取得する-
endswith('.sh')
により、.sh
で終わるファイルのみを処理対象とする
-
-
for
ループでスクリプトファイル1つずつ、以下を処理-
os.path.join
関数を使用して、ディレクトリパスとファイル名を結合し、スクリプトファイルのフルパスを作成 - スクリプトファイルを読み込み専用モードで開き、
readlines
メソッドを使用して各行をリストとして取得(readlines
メソッドは、テキストファイルからすべての行を読み込んでリストとして返す) - 取得した行のリストの指定された位置(13番目=14行目)に、特定の行を挿入
- 書き込みモードでファイルを開き、
writelines
メソッドを使用して行のリストをファイルに書き込む(writelines
メソッドは、リスト内の各要素をファイルに直接書き込む)
-