错误代码: s = '\t'.join([list2_name[i], str(' ----- '), list2_email[i])
^
SyntaxError: invalid syntax
ftele1 = open('TeleAddressBook.txt', 'rb') # rb是为了防止文件中的中文乱码,存储了2进制数据
ftele2 = open('EmailAddressBook.txt', 'rb')
ftele1.readline() # 跳过第一行
ftele2.readline()
lines1 = ftele1.readlines() # readlines返回整个文件内容的列表,每项是以换行符结尾的一项字符串
lines2 = ftele2.readlines()
list1_name = []
list1_tele = []
list2_name = []
list2_email = []
for line in lines1: # 获取第一个文本中的姓名和电话信息
elements = line.split() # 通过split获得由tab空格键空格出的姓名信息和电话信息(对于字符串,通过split拆分为一个列表,默认以空格分割)
list1_name.append(str(elements[0]))
list1_tele.append(str(elements[1])) # 将文本读出来的bytes转换为str类型。经测试不加str也可以
for line in lines2: # 获取第二个文本中的姓名和邮件信息
elements = line.split()
list2_name.append(str(elements[0]))
list2_email.append(str(elements[1]))
###开始处理###
lines = []
lines.append('姓名\t 电话 \t 邮箱\n') # \t表示tab空格。要想此处中文正确显示,编码方式调为gbk即可
# 按索引方式遍历姓名列表1
for i in range(len(list1_name)):
s = ''
if list1_name[i] in list2_name:
j = list2_name.index(list1_name[i]) # 找到姓名列表1对应列表2中的姓名索引位置
s = '\t'.join(list1_name[i], list1_tele[i], list2_email[j])
s += '\n'
else:
s = '\t'.join([list1_name[i], list1_tele[i], str(' ----- ')])
s += '\n'
lines.append(s)
# 处理姓名列表2中剩余的姓名
for i in range(len(list2_name)):
s = ''
if list2_name[i] not in list1_name:
s = '\t'.join([list2_name[i], str(' ----- '), list2_email[i])
s += '\n'
lines.append(s)
ftele3 = open('AddressBook.txt', 'w')
ftele3.writelines(lines)
ftele3.close()
ftele1.close()
ftele2.close()
print("The addressBooks are merged!")
s = '\t'.join( [ list2_name[i], str(' ----- '), list2_email[i])
改为
s = '\t'.join(list2_name[i], str(' ----- '), list2_email[i])
http://blog.csdn.net/u010541307/article/details/52825981
s = '\t'.join([list2_name[i], str(' ----- '), list2_email[i]) list2_nmae前面的[ 多了啊!