質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

945閲覧

パイソン テキストファイルの中にある重複行を取り除く方法

yuhei1222

総合スコア10

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/12/07 05:02

前提・実現したいこと

現在、テキストファイルの中にある重複行を取り除こうとしているのですが、どのようにすればいいのか教えていただけませんでしょうか?

apple.txtというテキストファイルが以下にあったとします。


None_None

ConfigHandler_56663624
ConfigHandler_56663624
ConfigHandler_56663624
ConfigHandler_56663624

None_None

ColumnConverter_56963312
ColumnConverter_56963312

PredicatesFactory_56963424
PredicatesFactory_56963424

PredicateConverter_56963648
PredicateConverter_56963648

ConfigHandler_80134888
ConfigHandler_80134888
ConfigHandler_80134888
ConfigHandler_80134888


None_None
ConfigHandler_56663624
ColumnConverter_56963312
PredicatesFactory_56963424
PredicateConverter_56963648
ConfigHandler_80134888

という行をプログラムの中で一行ずつ指定して取り除くのではなく、
テキストファイルを読み込んでその中に重複行があるときにその行を削除するようなコードを書きたいのですが。。。というのも実際のテキストファイルは何万行もあるためです。

理想的な結果

None_None

ConfigHandler_56663624

ColumnConverter_56963312

PredicatesFactory_56963424

PredicateConverter_56963648

ConfigHandler_80134888

### 試したこと en = set(open( 'apple.txt')) などしてみたのですが。。だめでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2018/12/07 08:09

結果は順番を維持する必要がありますか?また、重複が連続しない場合はありますか?
guest

回答2

0

こんな感じかと?

with open('apple.txt','r',encoding='utf-8') as f: hoge = f.readlines() print(f) fuga = [] # 読込 改行コードのみじゃない場合、かつfugaに無い場合追加。 for i in hoge: if i != '\n': if i not in fuga: fuga.append(i) # 書き込み f = open('apple2.txt','w',encoding='utf-8') for i in fuga: f.write(i + '\n') #テキストに吐き出すから\nの改行コートをつける f.close

投稿2018/12/07 06:32

expy

総合スコア103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

How might I remove duplicate lines from a file?
の回答コードがそのまま求めるものになるかと思います。
set()は、各読込行から作成します。

投稿2018/12/07 05:20

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問