Python 并排合并两个.csv文件
更新****我在Windows上使用awk解决了此问题。使用此命令成功地并排添加文件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. 但我还没有访问与
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。