MENU
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
カテゴリー
  • IT関連 (623)
    • Bootstrap (2)
    • クラウド (4)
    • サーバー技術 (185)
    • ストレージ (7)
      • NetApp (7)
    • ネットワーク技術 (91)
      • Cisco (36)
      • Juniper (18)
      • 負荷分散装置 (17)
    • パソコン関連 (92)
      • MAC (25)
      • Windows (54)
    • プログラミング (154)
      • Ansible (11)
      • C言語 (23)
      • Python (111)
        • Django (20)
    • 仮想化 (88)
      • Docker (63)
      • VMware (23)
  • VPS (200)
    • ABLENET VPS (16)
    • Amazon Lightsail(VPS) (2)
    • ConoHaVPS (37)
    • mixhostVPS (4)
    • WebARENAIndigo (16)
    • XServerVPS (34)
    • お名前.com VPS (12)
    • さくらのVPS (24)
    • カゴヤクラウドVPS (13)
    • シンVPS (7)
  • レンタルサーバー (56)
    • エックスサーバー (38)
  • 光回線 (8)
  • 技術スキルアップ開発・学習 (7)
    • Envader (2)
    • RareTECH (2)
    • Udemy (3)
もう現役20年超えましたー。経験値ならだれにも負けないエンジニア技術ブログ
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
  1. ホーム
  2. IT関連
  3. プログラミング
  4. Python
  5. 【Python】ファイルからfindメソッドを利用して文字列を抽出とファイル書き込みまで

【Python】ファイルからfindメソッドを利用して文字列を抽出とファイル書き込みまで

2020 1/24
Python
2020年1月23日2020年1月24日

Pythonでファイルの中の特定の文字列を抽出して、さらに別ファイルに書き込みたいということで、プログラムを書いてみました。

目次
安くて高速!高性能VPSで快適開発!
最速5分でサーバー構築
>>>こちらをチェック

エンジニア必見! 技術力を伸ばすVPS徹底比較
>>>VPS比較

findメソッドを利用して文字列を抽出し、別ファイルに書き込む方法

今回は、findメソッドを使用して特定の文字列を取得するようにします。

このPythonのfindメソッドですが、文字列の中に指定した文字列が存在するか、ある場合はその位置情報を教えてくれるメソッドおなります。
このfindメソッドはよく使うので必ず覚えておいたほうがいいです。

ファイルの中のデータから特定の文字列を抽出

今回は以下のような、「log.txt」の中身から特定の文字列を検索してその行の文字列を抽出するプログラムとなります。
ファイルはSWなどから取得したコンフィグファイルです。

ネットワークエンジニアの方にとってみれば、よく見るやつですね。

※ log.txt


......

interface port-channel1
  switchport
  switchport mode trunk
  speed 1000
  vpc 1

interface port-channel2
  switchport
  switchport mode trunk
  speed 1000
  vpc 2

interface port-channel3
  switchport
  switchport mode trunk
  speed 1000
  vpc 3

......

この、コンフィグファイルから特定の以下の文字列を抽出します。
「interface port-channel」

文字列を取得する先のファイルは、「xlsx」以外の拡張子はほぼいけました。

※re-test.py

with open('log.txt', 'r', newline='') as f:
    lines = f.readlines()

    for line in lines:
        if line.find('interface port-channel') >= 0:
            print(line[:-1])

※実行結果

C:\Python>python re-test.py
interface port-channel1
interface port-channel2
interface port-channel3
interface port-channel4
interface port-channel5
interface port-channel6

findで読み取ったデータをファイルに書き込む

上記で、うまく文字列の抽出ができれば、あとはファイルへの書き込みを実行します。
以下のプログラムでは、読込先のファイルと、書き込み先のファイルを同時に開き、抽出した文字列を書きこむようになっています。

with open('ifile.csv', 'r', newline='') as f, \
        open('ofile-test.csv', 'w') as o:
        lines = f.readlines()

        for line in lines:
            if line.find('interface port-channel') >= 0:
                print(line[:-1], file=o)

print('「ofile-test.csv」への書き込み完了')

※実行結果

C:\Python>python re-test.py
「ofile-test.csv」への書き込み完了

C:\Python>

csvファイルへの書き込み確認

このようなプログラムはよく利用すると思うので覚えておきましょう。

エンジニアスキルをアップする勉強法

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。

あわせて読みたい
現役エンジニアがおすすめするVPSレンタルサーバ比較(高速SSD限定) 格安VPS比較(2025年最新版)

Python
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)



検索
カテゴリー
新着記事
  • XServerVPS アニメ風 男の子 プログラミングをしている VPSを利用している 楽しそうにしている
    XServerVPSで証明書(SSL)を取得する方法
    2025年3月24日
    XServerVPS
  • レンタルサーバ アニメ風 女の子 楽しんでパソコンをしている 目がキラキラ
    WordPressがレンタルサーバよりVPSで利用する方がおすすめの理由
    2025年3月19日
    VPS
  • VPS レンタルサーバー アニメ風 女の子 プログラミングをしている VPSを利用している 楽しそうにしている
    VPSとクラウドの違いとは?初心者向けにわかりやすく解説
    2025年3月5日
    VPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSはWindows serverを利用できない。その理由と利用できるOSは?
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSでゲームを利用する環境はあるのか
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSのサイトの表示速度は他社に比べて早いのか?
    2025年3月4日
    シンVPS
目次
目次