Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中连接两个csv文件_Python_Csv_Merge - Fatal编程技术网

在Python中连接两个csv文件

在Python中连接两个csv文件,python,csv,merge,Python,Csv,Merge,我想将两个csv文件合并为一个,如下所示: **file 1:** feb,55,1.23,..,..,0 mar,65,2.33,..,..,1 **file 2:** feb,55,..,12,KL,.. mar,65,..,10,MN,.. feb,55,1.23,12,KL,0 mar,65,2.33,10,MN,1 所以输出应该是这样的: **file 1:** feb,55,1.23,..,..,0 mar,65,2.33,..,..,1 **file 2:** feb,5

我想将两个csv文件合并为一个,如下所示:

**file 1:**
feb,55,1.23,..,..,0
mar,65,2.33,..,..,1

**file 2:**
feb,55,..,12,KL,..
mar,65,..,10,MN,.. 
feb,55,1.23,12,KL,0
mar,65,2.33,10,MN,1
所以输出应该是这样的:

**file 1:**
feb,55,1.23,..,..,0
mar,65,2.33,..,..,1

**file 2:**
feb,55,..,12,KL,..
mar,65,..,10,MN,.. 
feb,55,1.23,12,KL,0
mar,65,2.33,10,MN,1
我的以下代码段不起作用:

f1=[li.split(',') for li in open("file1.csv","r+")]
f2=[lj.split('\t') for lj in open("file2.csv","r+")]

def joinL(x,y):
    list=[]
    for n in x:
        for m in y:
            if n[0]==m[0]:
                list.append(m)
    return list

print joinL(f1,f2)
你能帮忙吗 谢谢

这对我很有用:

with open('filename1', 'r') as fl1:
    f1 = [i.split(',') for i in fl1.read().split('\n')]

with open('filename2', 'r') as fl2:
    f2 = [i.split(',') for i in fl2.read().split('\n')]

f3 = [[a if b is None or b==len(b)*b[0] else b for a,b in map(None,x,y)] for x,y in zip(f1,f2)]

for i in f3:
    for j in i:
        print j,
    print

[OUTPUT]
feb,55,1.23,12,KL,0
mar,65,2.33,10,MN,1
请注意,您的文本中有一个小错误。它应该是
2.33
而不是
2,33

以下是我正在使用的代码:

#my_script.py
with open('t1.txt', 'r') as fl1:
    f1 = [i.split(',') for i in fl1.read().split('\n')]

with open('t2.txt', 'r') as fl2:
    f2 = [i.split(',') for i in fl2.read().split('\n')]

f3 = [[a if b is None or b==len(b)*b[0] else b for a,b in map(None,x,y)] for x,y in zip(f1,f2)]

for i in f3:
    for j in i:
        print j,
    print



也许这有帮助:如果我理解正确的话,在一个例子中,你有“1.23”,而在另一个例子中,你有“2”和“33”在同一个地方,我认为这是不知道什么时候发生的。有没有可能“2”,“33”实际上是“2.33”啊,我很抱歉,它是2.33这是一个错误还是一个问题:-)它给了我索引器:字符串索引range@Doublexo,对我来说很好。你确定你没有更改任何代码吗?这正是我写的:用open('log1.csv','r')作为fl1:f1=[I.split(',')作为fl1.read().split('\n')]作为fl2的open('log2.csv','r'):f2=[I.split(',')]作为fl2.read().split('\n')]j=[a如果b是None或b==len(b)*b[0]其他b是a,b是在map中(None,x,y是x,y是在zip中)(f1,f2)]对于j中的k:对于k中的l:打印lprint@Doublexo,您是否注意到您的文本文件中的错误,我已在我的回答中显示。此外,您是否将上面的两个文件名替换为相应的文件名?