下面的代码只能移动电子邮件地址在“ @”符号后2个位置末尾有2个大写字母的帐户。过滤器似乎可以捕获所有内容。
我更改了用户名和check_email变量中值的返回值。
mike@gmail.com
toTR@yahoo.com
erferTT@hotmail.com
fwefEE@yahoo.com
thisYY@aol.com
that@yahoo.com
应该省略第一个和最后一个电子邮件地址,其余的应放置到新文件中,但小写的电子邮件地址也将被提取。
谢谢
import sys
import argparse
from datetime import datetime
def parse_arg():
"""Parses the args"""
if len(sys.argv) < 1:
print("Args: Input filename")
raise RuntimeError("Insufficient arguments.")
arg_1 = sys.argv[1]
return arg_1
#Parameter is the filename
filename = parse_arg()
#Create filename for output
output_file_date = datetime.now().strftime("%Y%m%d_%I%M%S")
output_file = output_file_date + '_' + filename
#Access the input file
with open(filename, 'rb') as input_file, open(output_file, 'w') as file_output:
#Create the header"""
output_file_header = input_file.readline().decode().replace('\r','')
file_output.write(output_file_header)
#Skip the header in the input file
next(input_file)
#iterate over file object line by line
for line in input_file:
#Create output file objects
lines = line.decode().split(',')
#Create the email username variable
username = lines[1].split('@')[0]
#Create variable that display last two characters
check_email = username[-1:]
#Create file based on business rules and write results to file.
if check_email.isupper(): #and len(username) < 16:
output_data = ','.join(lines).replace('\r','')
file_output.write(output_data)
答案 0 :(得分:0)
您要在此处检查最后一个字符,而不是最后两个字符。
代替写作
check_email = username[-1:]
做就是了
check_email = username[-2:]
定义的数字是多少个字母。
和往常一样,我建议您打印出每行的实际信息,以便您更好地了解并更好地了解正在发生的事情。