Python 并排合并两个.csv文件

Python 并排合并两个.csv文件,python,windows,csv,merge,Python,Windows,Csv,Merge,更新****我在Windows上使用awk解决了此问题。使用此命令成功地并排添加文件 call awk -F"\t" "NR==FNR{a[NR]=$1; next} {print a[FNR], $0}" OFS="\t" test1.csv test2.csv 我已经尝试了一些方法,但仍然无法让它工作,我猜这是与其中一个文件中的特殊字符有关。使用粘贴工具,它很简单 paste test1.csv test2.csv. > Test3.csv in Linux. 但我还没有访问与

更新****我在Windows上使用awk解决了此问题。使用此命令成功地并排添加文件

call awk -F"\t" "NR==FNR{a[NR]=$1; next} {print a[FNR], $0}" OFS="\t" test1.csv test2.csv

我已经尝试了一些方法,但仍然无法让它工作,我猜这是与其中一个文件中的特殊字符有关。使用
粘贴
工具,它很简单

paste test1.csv test2.csv. > Test3.csv in Linux. 
但我还没有访问与此任务相关的任何Linux

我的环境是Windows7,安装了Python 2.7(没有熊猫)和Perl

我需要合并2(或更多)的csv文件一起并排。这些文件将始终具有相同的行数

我用python尝试过这个方法,但没有成功

我试过使用批处理,但它不起作用

test1.csv包含

python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\
python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\
python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\
123456.pdf
123457.pdf
124587.pdf
test2.csv包含

python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\
python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\
python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\
123456.pdf
123457.pdf
124587.pdf
我希望输出(Test3.csv)是一个以制表符分隔的文件,其中包含:

python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\    123456.pdf
python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\    123457.pdf
python pdf2txt.py -o C:\Users\user\Desktop\Folder\Folder2\    124587.pdf
非常感谢您的帮助


谢谢。

这里有一个使用
zip
的解决方案。根据csv文件的具体设置,您可能需要使用分隔符和引号字符

with open('test1.csv', 'rb') as t1, open('test2.csv', 'rb') as t2, open('output.csv', 'wb') as output:
     r1 = csv.reader(t1, delimiter=' ')
     r2 = csv.reader(t2, delimiter=' ')
     w = csv.writer(output, delimiter=' ')
     for a, b in zip(r1, r2):
             w.writerow(a + b)

这里有一个使用
zip
的解决方案。根据csv文件的具体设置,您可能需要使用分隔符和引号字符

with open('test1.csv', 'rb') as t1, open('test2.csv', 'rb') as t2, open('output.csv', 'wb') as output:
     r1 = csv.reader(t1, delimiter=' ')
     r2 = csv.reader(t2, delimiter=' ')
     w = csv.writer(output, delimiter=' ')
     for a, b in zip(r1, r2):
             w.writerow(a + b)

以下是一个更直观的替代解决方案,使用:

对于庞大的数据集,上述解决方案将很慢或不可能完成。因此,下面是处理庞大数据集的代码:

>>> import pyexcel as p
>>> left=p.iget_array(file_name='left.csv')
>>> right=p.iget_array(file_name='right.csv')
>>> p.isave_as(array=(a+b for a, b in zip(left, right)), dest_file_name='merged.csv')
>>> p.free_resources()

以下是一个更直观的替代解决方案,使用:

对于庞大的数据集,上述解决方案将很慢或不可能完成。因此,下面是处理庞大数据集的代码:

>>> import pyexcel as p
>>> left=p.iget_array(file_name='left.csv')
>>> right=p.iget_array(file_name='right.csv')
>>> p.isave_as(array=(a+b for a, b in zip(left, right)), dest_file_name='merged.csv')
>>> p.free_resources()

PythonPyExcel包有
pyexcel.cookbook.merge_两个文件
(和
pyexcel.cookbook.merge_文件
,用于合并N个文件)


pip安装pyexcel
,请参阅)

python pyexcel包有
pyexcel.cookbook.merge_两个文件
(和
pyexcel.cookbook.merge_文件
用于合并N个文件)


pip安装pyexcel
,请参阅)

您说您已经尝试了各种东西-您遇到了什么问题?请发布您当前的代码,并告诉我们您得到了什么结果或错误。您尝试了什么?如果你不告诉我们你做错了什么,我们就不能告诉你。你为什么不知道你在用什么语言?请修复标记。仅仅因为您安装了草莓Perl,并不意味着这是一个Perl问题。您可能也安装了C编译器,但C没有标记。除非你有一个特定语言的例子,请不要标记垃圾邮件。我正在删除Perl。您说您已经尝试了各种东西-您遇到了什么问题?请发布您当前的代码,并告诉我们您得到了什么结果或错误。您尝试了什么?如果你不告诉我们你做错了什么,我们就不能告诉你。你为什么不知道你在用什么语言?请修复标记。仅仅因为您安装了草莓Perl,并不意味着这是一个Perl问题。您可能也安装了C编译器,但C没有标记。除非你有一个特定语言的例子,请不要标记垃圾邮件。我正在删除Perl。