〜Timing Report処理の第一歩〜
📝 はじめに
Synopsys PrimeTimeなどでTiming Reportを出力すると、数千行にもなるテキストファイルが生成されます。
これをExcelやgrepで整理するのは大変ですよね。
実は、Pythonの基礎さえあればレポートの自動処理が可能です。
今回の記事では、その第一歩として「テキストファイルを読み込み、行数と文字数を数えるスクリプト」を作成します。
🖥 環境準備
- Python 3.x(公式サイトまたはAnacondaでインストール)
- エディタ:VS Code / PyCharm / Jupyter Notebook など好みでOK
- サンプルファイル:
timing_sample.rpt
(適当なテキストでOK)
✍️ コード例
以下のコードを count_lines.py
という名前で保存して実行してみましょう。
#count_lines.py
#ファイルを開いて行数と文字数を数えるスクリプト
with open("timing_sample.rpt", "r", encoding="utf-8") as f:
text = f.read()
#行数を数える
line_count = text.count("\n") + 1
#文字数を数える
char_count = len(text)
print("行数:", line_count)
print("文字数:", char_count)
▶️ 実行方法
ターミナル(またはコマンドプロンプト)で次のコマンドを入力します。
python count_lines.py
出力例:
行数: 124
文字数: 5870
🔍 解説
open("timing_sample.rpt", "r")
→ ファイルを「読み込みモード」で開きますf.read()
→ ファイルの中身をすべて文字列として読み込みますlen(text)
→ 読み込んだ文字列の長さ(=文字数)を返しますtext.count("\n") + 1
→ 改行の数を数えて行数を求めます
これで、「レポートが何行あるか」「どれくらいの文字量か」を自動で調べられるようになりました。
💡 応用ポイント
- 巨大なレポートでも一瞬で集計可能
- Excelやgrepでは難しい「文字数カウント」もすぐにできる
- 今後の解析の土台になる