我有两个csv文件
csv1-我发出一个cmd命令并将其写入file1。
timestamp ref_id rx ry tag repeat backoff
1561333986465 44 47.8312 11.0052 c_tag 0 0
1561334690976 44 47.8312 11.0052 c_tag 1 1500
1561334703668 44 47.8312 11.0052 c_tag 2 1500
csv2-该特定命令的结果被发布到file2。
tStart source trackingID anchs x y z
1561333987329 toa 0 8 96 2.5 4
1561334691738 toa 0 8 95.2 2.2 4
1561334693818 toa 0 8 98.5 3.7 4
1561334704328 toa 0 8 96.6 2.9 4
1561334706428 toa 0 8 95.8 2.6 4
1561334708517 toa 0 8 97.3 4.3 4
如果参数结果设置为0,则命令仅运行一次,结果也将发布一次。如果repeat = 1,则result命令运行两次,并将结果发布两次。因此,如果将result设置为n,则该命令将运行n次,并将结果发布n次到csv2。我需要以一种方式合并这两个文件,以使前7列发布命令,而后7列发布结果。
import csv
in_1_name = "/home/input.csv"
in_2_name = "/home/excel/output.csv"
out_name = "/home/merge/merged.csv"
with open(in_1_name) as in_1, open(in_2_name) as in_2, open(out_name, 'w') as out:
reader1 = csv.reader(in_1, delimiter=";")
reader2 = csv.reader(in_2, delimiter=";")
writer = csv.writer(out, delimiter=";")
for row1, row2 in zip(reader1, reader2):
if row1[0] and row2[0]:
writer.writerow([row1[0], row2[0]])
上面的代码只是合并了从csv1到csv2的列,因为两个csv之间没有什么共同之处,我无法找到一种方法来获得预期的结果。任何帮助表示赞赏。
expected result :
timestamp ref_id rx ry tag repeat backoff tStart source trackingID anchs x y z
1561333986465 44 47.8312 11.0052 c_tag 0 0 1561333987329 toa 0 8 96 2.5 4
1561334690976 44 47.8312 11.0052 c_tag 1 1500 1561334691738 toa 0 8 95.2 2.2 4
X X X X X X 1561334693818 toa 0 8 98.5 3.7 4
1561334703668 44 47.8312 11.0052 c_tag 2 1500 1561334704328 toa 0 8 96.6 2.9 4
X X X X X X X 1561334706428 toa 0 8 95.8 2.6 4
X X X X X X X 1561334708517 toa 0 8 97.3 4.3 4