我编写了一个程序,从“从:”开始从文本文件中提取所有电子邮件地址。我创建了一个列表,将所有提取的电子邮件地址存储到列表中,并创建另一个列表,通过删除重复的电子邮件地址来存储唯一的电子邮件地址。现在我得到输出但同时我得到的输出显示'set'在打印新列表之前,即在“print Unique_list”之后
注意 - 未附加原始文本文件,因为我不知道该怎么做。
谢谢
print "Please enter the file path:\n"
text_file = raw_input ("Enter the file name:")
print "Opening File\n"
#Using try and except to print error message if file not found
try:
open_file = open ( text_file )
print "Text file " + text_file + " is opened \n"
except:
#Printing error message
print "File not found"
#Using "raise SystemExit" for program termination if file not found
raise SystemExit
#Creating dynamic list to store the no. Email addresses starting from 'From:'
Email_list = [];
#Using loop to extract the Email addresses starting from 'From:'
for line in open_file:
if 'From:' in line:
#Adding each extracted Email addresses at the end of the list
Email_list.append(line)
print "Printing extracted Email addresses\n"
print Email_list,"\n"
print "Before removing duplicate Email addresses, the total no. of Email addresses starting with 'From:'",len(Email_list),"\n"
#Removing duplicate Email addresses
Unique_list = set(Email_list)
#print Email_list.count()
print "Printing Unique Email addresses\n"
print (Unique_list)
print "After removing duplicate Email addresses, the total no. of Email [enter image description here][1]address starting with From:, ",len(Unique_list),"\n" )`
答案 0 :(得分:1)
获取在打印新列表之前显示'set'的输出,即在“print Unique_list”
之后
只需将其转换回stacktrace
。
list
答案 1 :(得分:1)
答案可能取决于目标。基于这个问题,目前尚不清楚该目标是否仅以特定方式打印地址;或根据一些可读性假设打印它们。如果目标是以给定的方式打印,则可以通过控制输出来获得良好的服务;而不是依赖于您要打印的对象的内置String表示。
一个例子:
而不是print Email_list,"\n"
使用print print (','.join (Email_list, '\n'))
如果您想模拟列表的表示,可以使用print ('[\'{list}\']'.format (list = '\', \''.join (Email_list)), '\n')
之类的内容
或者更具凝聚力的东西。
在任何情况下,您都可以控制打印方式。
如果依靠内部确定的对象表示进行打印,可能会根据输出问题进行编码考虑;这不是支持一个人为纯程序逻辑做出最佳编码选择的能力的选择。
或者,我是否误解了你的问题?