【Python】2つのテキストファイルの中身が一致しているか確認する方法!

このページではPythonを使って、フルパスで指定した2つのテキストファイルの中身が一致しているか確認する方法をご紹介していきます。

 

ただ一致しているか確認するだけではなく、一致していない箇所がどこなのかも教えてくれるようになっています。

 

あなたのやりたいことと一致していればぜひ続きをご覧ください。

 

スポンサーリンク

必要なライブラリ

今回はpandasを使用します。

⇒pandasのread_csvというスキルを使ってテキストファイルを読み込んでいきます。

 

インストールしていない場合は、まずはインストール作業から始めましょう。

 

スポンサーリンク

使用するサンプルテキストファイル

今回は以下の画像のようなテキストファイルを使用します。

今回は4行しかありませんが、基本的には何行あっても対応可能です。

使用するサンプルテキストファイル

 

このテキストファイルをもう一つ用意し、完全一致している場合、一致していない行を含んでいる場合に分けて実践してみましょう。

 

スポンサーリンク

2つのテキストファイルが一致しているか確認する方法

それでは本題である、2つのテキストファイルの中身が一致しているか確認するサンプルコードをご紹介します。

import pandas as pd
txt1='C:/Users/Desktop/study_python/test108/folder1/sample1.txt'
txt2='C:/Users/Desktop/study_python/test108/folder2/sample2.txt'
txt1=pd.read_csv(txt1, header=None)
txt2=pd.read_csv(txt2, header=None)
counter=0
for i in range(len(txt1)):
    if txt1[0][i] != txt2[0][i]:
        print('row'+str(i)+' Not equal')
        print('txt1 '+txt1[0][i])
        print('txt2 '+txt2[0][i])
        counter+=1
if counter==0:
    print('Equal')

 

基本的には、2,3行目に一致しているか確認したい2つのテキストファイルのフルパスを指定してあげるだけでOKです。

 

これで一致している場合はEqualというメッセージが表示され、一致していない場合は、一致していない箇所がどうなっているのかを教えてくれるようになっています。

 

スポンサーリンク

サンプルコードの実行結果の確認

それでは先ほどのサンプルコードを実行してみましょう。

まずは以下の2つのファイルに対して実行してみます。

(両者は完全に一致していることがわかると思います。)

使用するサンプルテキストファイル(完全一致)

 

それではこれらのフルパスを先ほどのコードに指定して実行してみましょう。

以下が出力されました。

サンプルコードを実行した結果(完全一致)

問題なさそうですね。

 

次は以下の2つで実行してみます。

使用するサンプルテキストファイル(部分不一致)

3行目が一致していませんね。

 

それでは実行してみましょう。

以下が出力されました。

サンプルコードを実行した結果(部分不一致)

2行目が一致していないと言っていますね。

(Pythonでは1行目を0として扱いますので、ご注意ください。)

そしてそれぞれのテキストの不一致内容も教えてくれていますね。

 

こちらも問題なく実行できました。

 

スポンサーリンク

おわりに

というわけで今回はpythonを使って、2つのテキストファイルの内容が一致しているかを確認する方法をご紹介しました。

今回は1列にデータが入っているパターンを取り扱いましたが、複数列ある場合は少しコードを修正する必要があります。

もしわからなければコメント欄からご質問ください。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました