0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】指定されたディレクトリ内のすべてのシェルスクリプトファイルに特定の行を追加する方法

Posted at

概要

  • 指定されたディレクトリにある全てのスクリプトファイルの〇〇行目に特定の行を追加するコードを紹介します。

サンプルコード解説

  • 以下、指定されたディレクトリにある全てのスクリプトファイル(.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メソッドは、リスト内の各要素をファイルに直接書き込む)
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?