プログラミング

Python でファイルを読み込み何か加工した結果を出力するコードの雛形

※当サイトにはプロモーションが含まれています。

投稿日:2021年9月9日 更新日:

テキストファイルを読み込んで、何か加工を行い、その結果を標準出力に出力する Pythonコード」の雛形を紹介します。

早速ですが、以下になります。

import sys
import os

def convert_lines(lines):
    """データを修正して返す"""
    new_lines = []
    for line in lines:
        # 例として、各行の末尾に "-dummy" を追加する
        line_tmp = line.rstrip() + '-dummy'
        new_lines.append(line_tmp)

    return new_lines

def read_file(file_path):
    """ファイルを読み込んで配列にして返す"""
    lines = []
    f = open(file_path, 'r')
    for line in f:
        lines.append(line)
    return lines

def main(file_path):
    try:
        lines = read_file(file_path)
        lines_mod = convert_lines(lines)
        for line in lines_mod:
            print(line)
    except:
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    if len(sys.argv) < 2:
      print('Usage: %s 元ファイル' % sys.argv[0])
      sys.exit()

    file_path = sys.argv[1]
    if not os.path.exists(file_path):
        print('指定されたファイルが見つかりません')
        sys.exit()

    main(file_path)
  • 引数には、入力となるファイルパスを指定します。
  • それほど Python に詳しいわけでもないため、ベストプラクティスな書き方ではないかもしれません。

やっていることは単純です。

  1. ファイルを1行ずつ読み込み配列にする。
  2. その配列を1行目から読み込んでいき、何か加工する。
  3. その結果も配列にする。
  4. その配列を1行ずつ出力する。

例えば、以下の内容のファイル sample.txt を用意します。

aaaaa
bbbbb
ccccc
ddddd

今回紹介した Python コードを add_dummy.py というファイル名で保存して実行権限を与えます。

$ chmod u+x add_dummy.py

sample.txt を引数に指定して実行します。

$ python add_dummy.py sample.txt
aaaaa-dummy
bbbbb-dummy
ccccc-dummy
ddddd-dummy

これは、期待した通りの結果です。

テキストファイルに対して何かしらプログラムで処理したい場合に、今回の Pythonコードを雛形として、必要なコードを追加・修正して利用すると便利だと思います。

※ 私が必要だったので書きました?。

📂-プログラミング

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Bootstrap

ボタンを押した直後に BootstrapのTooltipを数秒間表示する方法

ウェブページ上のボタンを押した直後に、Bootstrap の Tooltip を一定時間だけ表示する方法を紹介します。 スポンサードリンク 目次1. はじめに2. 参考になる情報3. プログラムの書き …

WSL のターミナルから vagrant.exe up がエラーになる場合の対処法

目次1. 問題となった現象2. 対処法3. 補足 1. 問題となった現象 WSL (Windows Subsystem for Linux) のターミナルから、Windows用にインストールした va …

Web Programming

コンテキストメニューに項目を追加する Chrome拡張機能を作る

コンテキストメニューに項目を追加する Chrome拡張機能を作る手順を紹介します。

Web Programming

Document Picture-in-Picture APIを使ってみた

New in Chrome 130 | Blog | Chrome for Developers で、Document Picture-in-Picture API が紹介されているのを見かけたので、 …

Redux

Redux の非同期処理サンプルページを作りました

Redux で非同期処理を行うサンプルページを作りました。 目次1. スクリーンショット2. デモページ3. 動作4. ソースコード5. 参考情報 1. スクリーンショット スクリーンショット 2. …