ホームページ バックエンド開発 Python チュートリアル Python3.4.3でtxtテキストを行ごとに読み取り、重複を削除する方法

Python3.4.3でtxtテキストを行ごとに読み取り、重複を削除する方法

May 02, 2018 pm 04:17 PM
文章

この記事では主にPython3.4.3でテキストを一行ずつ読み込んで重複を削除する方法を紹介しますので、必要な方は参考にしてください

。ファイルの書き込みに注意すべき問題は次のとおりです:

1. 文字エンコーディング

2. 操作が完了したらすぐにファイル記述子を閉じます

3. いくつかの方法:

#!/bin/python3
original_list1=[" "]
original_list2=[" "]
original_list3=[" "]
original_list4=[" "]
newlist1=[" "]
newlist2=[" "]
newlist3=[" "]
newlist4=[" "]
newtxt1=""
newtxt2=""
newtxt3=""
newtxt4=""
#first way to readline
f = open("duplicate_txt.txt","r+")    # 返回一个文件对象  
line = f.readline()           # 调用文件的 readline()方法 
while line:  
  original_list1.append(line)          
  line = f.readline()  
f.close() 
#use "set()" remove duplicate str in the list
# in this way,list will sort randomly
newlist1 = list(set(original_list1))
#newlist1 = {}.fromkeys(original_list1).keys() #faster 
#rebuild a new txt 
newtxt1="".join(newlist1)
f1 = open("noduplicate1.txt","w")
f1.write(newtxt1)
f1.close()
###################################################################
#second way to readline
for line in open("duplicate_txt.txt","r+"):  
  original_list2.append(line)
newlist2 = list(set(original_list2))
newlist2.sort(key=original_list2.index)         #sort
#newlist2 = sorted(set(original_list2),key=l1.index)  #other way
newtxt2="".join(newlist2)
f2 = open("noduplicate2.txt","w")
f2.write(newtxt2)
f2.close()
###################################################################
#third way to readline
f3 = open("duplicate_txt.txt","r")  
original_list3 = f3.readlines()       #读取全部内容 ,并以列表方式返回 
for i in original_list3:          #遍历去重
  if not i in newlist3:
      newlist3.append(i)
newtxt3="".join(newlist3)
f4 = open("noduplicate3.txt","w")
f4.write(newtxt3)
f4.close()
###################################################################
#fourth way
f5 = open('duplicate_txt.txt',"r+") 
try: 
  original_list4 = f5.readlines() 
  [newlist4.append(i) for i in original_list4 if not i in newlist4]
  newtxt4="".join(newlist4)
  f6 = open("noduplicate4.txt","w")
  f6.write(newtxt4)
  f6.close()
finally: 
  f5.close()
ログイン後にコピー

結果:

重複排除前:

重複排除後 (順不同):

重複排除後 (順番に):

概要

以下のプログラムには、ファイルの読み取りと書き込みの操作とリンク リストの操作が含まれます。記事の冒頭で説明したいくつかの問題は中国語ではないので、エンコードについては気にしません。ここでそれらについて言及したいと思います:

f = open("test.txt","w")
f.write(u"你好")
ログイン後にコピー

上記のコードが python2 で実行されると、エラーが報告されます

プログラムが Unicode 文字列を直接保存できないため、エラーが報告されます。エンコードする必要があります。保存する前に、 str 型のバイナリ バイト シーケンスに変換されます。

write() メソッドは、デフォルトで ascii エンコード形式を使用してエンコードを自動的に変換しますが、ascii は中国語を処理できないため、UnicodeEncodeError が発生します。

正しい方法は、write() メソッドを呼び出す前に形式を手動で変換し、utf-8 または gbk を使用して str に変換することです。

f = open("test.txt","w")
text=u"你好"
text=text.encode(encoding='utf-8')
f.write(text)
ログイン後にコピー

close()について:

閉鎖されなかった場合の影響は何ですか?システムが開くことができるファイル記述子の数には制限があるため、操作が完了した後、ファイルを閉じないとシステム リソースが無駄に消費されます。 Linuxは65535です。 通常、close 後は問題ありませんが、open() 関数の呼び出し時にエラーが発生し、close() を呼び出すと必ずエラーが報告される場合があります。もう 1 つの方法は、write() 中にディスク容量が不十分な場合、エラーが報告され、close() を実行する機会がなくなることです。正しい方法は、例外をキャッチする場合を除いて try を使用することです:

f = open("test.txt","w")
try:
  text=u"你好"
  text=text.encode(encoding='utf-8')
  f.write(text)
except: IOError as e:
  print("oops,%s"%e.args[0])
finally:
  f.close()
ログイン後にコピー

よりエレガントな書き方は with...as を使用することです。

with open("test.txt","w") as f:
  text=u"你好"
  f.write(text.encode(encoding='utf-8'))
ログイン後にコピー

ファイル オブジェクトは、午前と午後のマネージャー プロトコルを実装します。プログラムが with ステートメントに入ると、ファイル オブジェクトが変数 f に割り当てられ、プログラムの実行時に close() メソッドが自動的に呼び出されます。で終了します。

互換性の問題について:

python2とpython3のopen()関数は異なります。後者は関数内で文字エンコード形式を指定できます。 python2 と python3 の間の互換性 open() 問題を解決するにはどうすればよいですか?

io モジュールで open() 関数を使用します。python2 の io.open は、python3 の open 関数と同等です

from io import open
with open("test.txt","w",encoding='utf-8') as f:
  f.write(u"你好")
ログイン後にコピー

関連する推奨事項:

Python での zip ファイルの解凍とファイルの削除の例_python


以上がPython3.4.3でtxtテキストを行ごとに読み取り、重複を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

新しい着信音とテキスト トーンを試す: iOS 17 の iPhone で最新のサウンド アラートを体験してください 新しい着信音とテキスト トーンを試す: iOS 17 の iPhone で最新のサウンド アラートを体験してください Oct 12, 2023 pm 11:41 PM

iOS 17 では、Apple は着信音とテキスト トーンの選択全体を全面的に見直し、通話、テキスト メッセージ、アラームなどに使用できる 20 以上の新しいサウンドを提供します。それらを確認する方法は次のとおりです。新しい着信音の多くは、古い着信音よりも長く、より現代的に聞こえます。アルペジオ、ブロークン、キャノピー、キャビン、チャープ、夜明け、出発、ドロップ、旅、やかん、水銀、銀河、クワッド、ラジアル、スカベンジャー、苗木、シェルター、スプリンクル、ステップ、ストーリータイム、からかう、傾ける、展開する、谷が含まれます。 。リフレクションは引き続きデフォルトの着信音オプションです。また、テキスト メッセージの受信、ボイスメール、メールの受信アラート、リマインダー アラートなどに使用できる 10 種類以上の新しいテキスト トーンも用意されています。新しい着信音やテキスト トーンにアクセスするには、まず iPhone が

大規模モデルを使用してテキスト要約トレーニングの新しいパラダイムを作成する 大規模モデルを使用してテキスト要約トレーニングの新しいパラダイムを作成する Jun 10, 2023 am 09:43 AM

1. テキスト タスク この記事では主に、生成テキスト要約の方法と、最新の生成テキスト要約トレーニング パラダイムを実装するために対照学習と大規模モデルを使用する方法について説明します。これには主に 2 つの記事が含まれており、1 つは対照学習を使用して生成モデルにランキング タスクを導入する BRIO: Bringing Order to Abstractive Summarization (2022)、もう 1 つは OnLearning to Summarize with Large Language Models as References (2023) です。 BRIO に基づいて高品質のトレーニング データを生成するための大規模なモデルを導入しています。 2. 生成テキスト要約トレーニング方法と

Chrome と Edge のすべてのタブでテキストを検索する方法 Chrome と Edge のすべてのタブでテキストを検索する方法 Feb 19, 2024 am 11:30 AM

このチュートリアルでは、Windows の Chrome または Edge で開いているすべてのタブで特定のテキストまたは語句を検索する方法を説明します。 Chrome で開いているすべてのタブでテキスト検索を行う方法はありますか?はい。Chrome で無料の外部 Web 拡張機能を使用すると、タブを手動で切り替えることなく、開いているすべてのタブでテキスト検索を実行できます。 TabSearch や Ctrl-FPlus などの一部の拡張機能を使用すると、これを簡単に実現できます。 Google Chrome のすべてのタブでテキストを検索するにはどうすればよいですか? Ctrl-FPlus は、ユーザーがブラウザ ウィンドウのすべてのタブで特定の単語、語句、またはテキストを簡単に検索できるようにする無料の拡張機能です。この展開は

win7システムがtxtテキストを開けない場合の対処方法 win7システムがtxtテキストを開けない場合の対処方法 Jul 06, 2023 pm 04:45 PM

win7 システムで txt テキストを開けない場合はどうすればよいですか? コンピュータ上でテキスト ファイルを編集する必要がある場合、最も簡単な方法はテキスト ツールを使用することです。しかし、一部のユーザーは自分のコンピュータで txt テキスト ファイルを開けないことに気づきます。 win7システムでtxtテキストを開けない問題を解決するための詳細なチュートリアルを見てみましょう。 win7 システムでテキスト テキストを開けない問題を解決するためのチュートリアル 1. デスクトップ上の任意の txt ファイルを右クリックします。txt ファイルがない場合は、右クリックして新しいテキスト ドキュメントを作成し、プロパティを選択します。 2. 以下の図に示すように、開いた txt プロパティ ウィンドウで、一般オプションの下にある変更ボタンを見つけます。 3. ポップアップ オープン モード設定で

1 か月間オンラインでチャットした後、豚殺し詐欺師は実際に AI に敗北しました。 200万人のネチズンが衝撃の叫びを上げた 1 か月間オンラインでチャットした後、豚殺し詐欺師は実際に AI に敗北しました。 200万人のネチズンが衝撃の叫びを上げた Apr 12, 2023 am 09:40 AM

「豚殺しプレート」といえば、誰もが痒くて嫌いなはず。この種のオンラインデート詐欺や結婚詐欺では、詐欺師は事前に騙されやすい被害者を探します。被害者は多くの場合、愛について美しい幻想を抱いている、無邪気で心優しく行儀の良い女の子です。これらの詐欺師と 500 ラウンド戦うために、ステーション B のテクノロジー界で有名な新進気鋭の「チューリングの猫」は、チャットで頻繁に陽気なジョークを言う、本物の人間よりも優れた AI を訓練しました。人。その結果、AIの働きにより、詐欺師はこの偽女性に惑わされ、520を「彼女」に直接送金してしまいました。さらに面白いのは、詐欺師が彼を利用するチャンスがないとわかった後、彼は防御を破っただけでなく、AI から「有名な言葉」を与えられたことです。はすぐに拡散し、ステーション B でサーフィンをしていた友人たちは全員騙されました。

Windows 11でスクリーンショットからテキストをコピーする方法 Windows 11でスクリーンショットからテキストをコピーする方法 Sep 20, 2023 pm 05:57 PM

テキスト アクションを使用して新しい Snipping Tool をダウンロードする 新しい Snipping Tool は開発ビルドと Canary ビルドに限定されていますが、待ちたくない場合は、更新された Windows 11 Snipping Tool (バージョン番号 11.2308.33.0) を今すぐインストールできます。仕組み: 1. Windows PC でこの Web サイトを開きます (アクセスします)。 2. 次に、「製品 ID」を選択し、「9MZ95KL8MR0L」をテキストフィールドに貼り付けます。 3. 右側のドロップダウン メニューから [クイック] リングに切り替えて、[検索] をクリックします。 4. 表示された検索結果でこのバージョン「2022.2308.33.0」を探します。 5. MSIXBUNDLE拡張子を持つものを右クリックし、コンテキストメニューで

Windows Copilot とクリップボードを使用して、コピーしたテキストを展開、説明、要約、または変更する方法 Windows Copilot とクリップボードを使用して、コピーしたテキストを展開、説明、要約、または変更する方法 Jul 29, 2023 am 08:41 AM

Copilot が現在 Windows 11 に搭載しているいくつかの機能のうち、おそらく最も便利なのは、クリップボードにコピーされたテキストを操作して調整できる機能です。これにより、デスクトップから直接 Copilot をテキスト編集および要約ツールとして簡単に使用できるようになります。ここでは、Copilot を使用して Windows 上でテキストを解釈、修正、拡張、要約する場合に知っておくべきことをすべて説明します。 Windows Copilot でコピーしたテキストを使用する方法 Copilot のプレビューでは、Windows のネイティブ AI サポートの統合について初めて詳しく説明します。他の場所からコピーしたテキストを変更または拡張するための初期の機能の 1 つは、コンテンツの作成、要約、改訂、および

win11 テキストドキュメントを開く方法を学ぶ win11 テキストドキュメントを開く方法を学ぶ Jan 02, 2024 pm 03:54 PM

テキスト ドキュメントはシステム内で非常に重要なファイルであり、多くのテキスト コンテンツを表示できるだけでなく、プログラミング機能も提供します。しかし、Win11 システムが更新された後、多くの友人がテキスト ドキュメントを開けないことに気づきましたが、現時点では、テキスト ドキュメントを実行することで直接開くことができます。 win11 でテキストドキュメントを開く場所 1. まずキーボードの「win+r」を押して「ファイル名を指定して実行」を呼び出します。 2. 次に、「notepad」と入力して、新しいテキスト文書を直接作成します。 3. 既存のテキストドキュメントを開きたい場合は、左上隅にあるファイルをクリックして「開く」をクリックすることもできます。

See all articles