我想用Python从几个文本文件中解析出电子邮件地址。在第一次尝试中,我试图从字符串列表('2To whom correspondence should be addressed. E-mail: joachim+pnas@uci.edu.\n'
)中获取包含电子邮件地址的以下元素。在
当我试图通过i.find("@") == 0
查找包含电子邮件地址的列表元素时,它没有给我content[i]
。我是否误解了.find()
函数?有更好的方法吗?在
from os import listdir
TextFileList = []
PathInput = "C:/Users/p282705/Desktop/PythonProjects/ExtractingEmailList/text/"
# Count the number of different files you have!
for filename in listdir(PathInput):
if filename.endswith(".txt"): # In case you accidentally put other files in directory
TextFileList.append(filename)
for i in TextFileList:
file = open(PathInput + i, 'r')
content = file.readlines()
file.close()
for i in content:
if i.find("@") == 0:
print(i)
python中的“Find”函数返回字符串中该字符的索引号。也许你可以试试这个?在
如果找到要搜索的子字符串,则Find返回索引。这对你所要做的是不正确的。在
最好使用正则表达式或RE来搜索@的出现。在您的情况下,您可能会遇到每行有多个电子邮件地址的情况(同样,我不知道您的输入数据,所以我无法猜测)
以下几点对你有好处:
你需要调整这个有效的电子邮件地址。。。我不太确定你是否可以有像+。。。在
在Python中,检查字符串是否包含字符的标准方法是使用^{} operator 。在您的情况下,这将是:
使用时,
find
方法返回@
字符所在的位置,从0开始,如Python official documentation所述。在例如,在字符串
^{pr2}$abc@google.com
中,它将返回3。如果没有找到字符,它将返回-1。等效代码为:但是,这被认为是unpythonic,并且
in
运算符的用法是首选的。在相关问题 更多 >
编程相关推荐