背景:項目
私はそれの引数の一つは、ファイル内の電子メールアドレスリストとして、必要で小さなスクリプトを書いています。これらのスクリプトは、SMTPサーバーへのtelnet接続を介して電子メールアドレスを使用するため、構文的に有効である必要があります。その結果、私は電子メールアドレスの妥当性をチェックする機能を入れている(ちなみに、この正規表現は完璧ではないが、問題の焦点ではないことが、私と一緒に負担してくださいおそらくまで緩めされます。):
def checkmailsyntax(email):
match = re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', email)
if match == None:
return True
私は、スクリプトを自動的に削除することは素晴らしいことだ考え出し
with open(args.targetfile) as targets:
target_email_list = targets.readlines()
:プログラムはmain()(argparseで)引数として入力ファイル名を読み、(現在はグローバル)リストに挿入するために行きますcheckmailsyntax
関数が失敗した場合は、リストから電子メールアドレスを削除してくださいこの掃除リストは、SMTPサーバに構文的に有効な電子メールアドレスを提出するために行くことができます:私は前に、それが仕事ですやっているかどうかを確認するために、削除要素スニペット後の両方に入れているコードをチェック
for i in target_email_list:
if checkmailsyntax(i):
target_email_list.remove(i)
エラー:
for i in target_email_list:
print i
問題:コードの出力は、このようです:delete要素スニペット(および提出ファイルの内容全体)の前に
:
delete要素スニペット後:
[email protected]
[email protected]
[email protected]
incorrectemail.com
[email protected]
wrongemail.com
[email protected]
[email protected]
だから私はかなり'noemail.com'
、'pretendemail.com'
と'badlywrong.com'
が削除された理由として困惑
'incorrectemail.com'
と
'wrongemail.com'
はありません。これは、文法的に間違った2つの電子メールがファイル内に順番に存在する場合に発生するようです。
誰でも正しい方向に向けることができますか?
はい、おそらく重複しています。私は何を探しているのか分からなかった。ありがとうBhargav。 – Ian