我有一个包含以下内容的文件
first_name,last_name,uid,email,dep_code,dep_name
john,smith,jsmith,jsmith@gmail.com,finance,21230
john,king,jking,jjing@gmail.com,human resource,31230
我想复制列“email”并创建一个新列“email2”,然后将gmail.com从列email2替换为hotmail.com
我是python新手,所以需要专家的帮助,我尝试了一些脚本,但如果有更好的方法来做,请让我知道。原始文件包含60000行。
with open('c:\\Python27\\scripts\\colnewfile.csv', 'rb') as fp_in1, open('c:\\Python27\\scripts\\final.csv', 'wb') as fp_out1:
writer1 = csv.writer(fp_out1, delimiter=",")
reader1 = csv.reader(fp_in1, delimiter=",")
domain = "@hotmail.com"
for row in reader1:
if row[2:3] == "uid":
writer1.append("Email2")
else:
writer1.writerow(row+[row[2:3]])
这里是最后一个脚本,唯一的问题是它没有完成整个outfile,它只显示61409行,而在输入文件中有61438行。
inFile='c:\ Python27\scripts\in-093013.csv' outFile='c:\ Python27\scripts\final.csv'
打开(inFile,'rb')作为fp_in1,打开(outFile,'wb')作为fp_out1: writer=csv.writer(fp_out1,分隔符=“,”) reader=csv.reader(fp_in1,分隔符=“,”) 对于col-in阅读器: 删除列[6:] writerow(col)作者 headers=下一个(读卡器) writer.writerow(标题+['email2']) 对于读卡器中的行: 如果长度(行)>;3: email=email.split('@',1)[0]+'@hotmail.com' writer.writerow(行+[电子邮件])
目前没有回答
相关问题 更多 >
编程相关推荐