我有一个我需要更改的csv文件,以便我可以创建一个输入文件。设置数据以使其成为键名,然后设置数据,例如:
allendata,test@test.com,test1@test.com
allendata2,test1@test.com,test@test.com,test3@test.com
我需要格式化的输出,以便我最终得到
allendata,test@test.com
allendata,test1@test.com
allendata2,test1@test.com
allendata2,test@test.com
allendata3,test3@test.com
大约有1800条这样的线,所以当它全部被解析出来时,我最终会得到大约30000行。
我会采取任何可能的方法,最好使用bash或python。
谢谢, 阿伦
答案 0 :(得分:1)
这应该可以解决问题
fIn = open('testIn.txt', 'r')
fOut = open('testOut.txt','w')
for line in fIn:
data = line.split(',')
name = data[0]
for address in data[1:]:
fOut.write(name + ',' + address + '\n')
fIn.close()
fOut.close()
' textIn.txt'
allendata,test@test.com,test1@test.com
allendata2,test1@test.com,test@test.com,test3@test.com
' testOut.txt'
allendata,test@test.com
allendata,test1@test.com
allendata2,test1@test.com
allendata2,test@test.com
allendata2,test3@test.com
答案 1 :(得分:1)
您可以使用awk
这样做:
$ awk -F, '{for(i=2;i<=NF;i++) print $1","$i}' file > new_file
$ cat new_file
allendata,test@test.com
allendata,test1@test.com
allendata2,test1@test.com
allendata2,test@test.com
allendata2,test3@test.com