我是pyhton的新手,我从2天开始坚持这个话题,试图找到一个基本的答案但是不能,所以最后我决定提出我的问题。
我想连接我的csv文件的前两行的值(如果可能的话,在内置模块的帮助下)。 任何形式的帮助将不胜感激。 Thnx提前
1,Suraj,Bangalore
2,Ahuja,Karnataka
3,Rishabh,Bangalore
1 2,Suraj Ahuja,Bangalore Karnataka
3,Rishabh,Bangalore
答案 0 :(得分:2)
只需创建一个csv.reader
对象(和一个csv.writer
对象)。然后在前两行使用next()
并将它们压缩在一起(使用列表理解)以匹配项目。
然后正常处理文件的其余部分。
import csv
with open("file.csv") as fr, open("output.csv","w",newline='') as fw:
cr=csv.reader(fr)
cw=csv.writer(fw)
title_row = [" ".join(z) for z in zip(next(cr),next(cr))]
cw.writerow(title_row)
# dump the rest as-is
cw.writerows(rows)
(如果文件当然只有1行,你会得到一个例外)
答案 1 :(得分:1)
您可以使用zip()
作为前两行,如下所示:
with open('f.csv') as f:
lines = f.readlines()
res = ""
for i, j in zip(lines[0].strip().split(','), lines[1].strip().split(',')):
res += "{} {},".format(i, j)
print(res.rstrip(','))
for line in lines[2:]:
print(line)
<强>输出:强>
1 2,Suraj Ahuja,Bangalore Karnataka
3,Rishabh,Bangalore
答案 2 :(得分:1)
with open('file2', 'r') as f, open('file2_new', 'w') as f2:
lines = [a.split(',') for a in f.read().splitlines() if a.strip()]
newl2 = [[' '.join(x) for x in zip(lines[0], lines[1])]] + lines[2:]
for a in newl2:
f2.write(', '.join(a)+'\n')