【问题标题】:Python Email Validation - Time Out Error - File Handling IssuePython 电子邮件验证 - 超时错误 - 文件处理问题
【发布时间】:2015-01-24 09:22:21
【问题描述】:

我正在使用 python 模块 ( validate_email )。

from validate_email import validate_email

result=open('output.tsv','w')

f=open('input.csv','r')

y=[]

result.write('Email_address\tEmail_validation\n')

for i in f:
    y.append(i.replace('\n',''))

for j in range(len(y)):
    val=validate_email('%s'%y[j], verify=True)
    result.write('%s\t%s\n'%(y[j],val))
    print y[j],val

其中 input.csv 文件包含要检查的电子邮件 ID 列表。

在for循环之后,结果将被写入输出文件。

问题:

  1. 有时脚本会引发超时错误raise TimeoutError, 'Timeout'

我的输入文件包含 300 个电子邮件 ID。

  1. 输出文件仅写入 120 封电子邮件的结果。但当时该程序仍在运行多达 300 个请求(电子邮件)。

【问题讨论】:

  • 您需要向模块维护者提出问题。我相信已经有一个未解决的问题:github.com/syrusakbary/validate_email/issues/9(如果这是同一个模块)。
  • 是的,完全一样。请告诉我有很多电子邮件地址要检查,哪种方法适合。
  • 发送电子邮件、请求回复、查找退回邮件。
  • 为了避免超时错误,我使用了 try catch。但是在写入输出文件时,我只写了 125 行。其余行在终端中处理,但未写入文件

标签: python validation python-2.7 python-3.x email-validation


【解决方案1】:

作为一种更优化的方式而不是range(len(y)),您可以在for 循环中使用y: 因为每个索引或 len 都有 O(n) 顺序,并且您在循环中使用 3 索引,所以您也有 len(y) 。只需使用in 操作即可:

for j in y:
    val=validate_email('%s'%j, verify=True)
    result.write('%s\t%s\n'%(j,val))
    print j,val

【讨论】:

  • 是的,谢谢,我明白了。但在 15 次计数后,它显示超时错误。有没有其他方法可以找到电子邮件存在'
  • 我必须检查批次电子邮件 ID 才能发送时事通讯。
  • 可能是因为validate_email!我以前不处理它,所以我不知道!关于它
  • 好的。感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多