Python 在csv文件中合并选定的行/行

Python 在csv文件中合并选定的行/行,python,csv,python-2.7,Python,Csv,Python 2.7,我需要将csv文件中的行($GPGGA和$GPVTG)与python组合在一起,因此出现了问题。csv文件如下所示: ~11:16:04.831,$GPGGA,091606.00,5149.28020915,N,01140.54074205,E ~11:16:04.861,$GPVTG,40.8,T,,,000.05,N,000.09,K,D*75 ~11:16:05.833,$GPGGA,091607.00,5149.28020818,N,01140.54074319,E ~11:16:05.

我需要将csv文件中的行(
$GPGGA
$GPVTG
)与python组合在一起,因此出现了问题。csv文件如下所示:

~11:16:04.831,$GPGGA,091606.00,5149.28020915,N,01140.54074205,E
~11:16:04.861,$GPVTG,40.8,T,,,000.05,N,000.09,K,D*75
~11:16:05.833,$GPGGA,091607.00,5149.28020818,N,01140.54074319,E
~11:16:05.863,$GPVTG,40.8,T,,,000.01,N,000.01,K,D*79
我试过了

eingabe = sys.argv[1]
with open(eingabe, "rb") as file:   
    datareader = csv.reader(file)
    for row in datareader:
        if "$GPGGA" in row:
            col1 = row[0], row[1], row[3], row[5]
        if "$GPVTG" in row:
            col2 = row[0], row[1], row[2]
        print col1 + col2
结果只是最后一行,但我需要所有的

(“~11:16:08.827”,“$GPGGA”,“5149.28021200”,“01140.54075064”,“~11:16:08.867”,“$GPVTG”,“40.8”)


我如何才能做到这一点?

你说的联合收割机是什么意思?你能给出一个清晰的样本输入,然后给出你的预期输出;您描述的输出与您发布的示例的任何输入行都不匹配;所以很难知道你到底想要什么。请你重新检查一下你的代码是否有有效的缩进。例如,如果第行中的“$GPGGA”假定有一个缩进太多,而打印的缩进太少。应该修改
if
语句和
print
语句的缩进。合并意味着根据表达式$GPGGA和$GPVTG将所选行写入新行。正如您在csv输入中看到的,它以$GPGGA开头,后跟$GPVTG行。现在输出与当前代码匹配,我也检查了缩进。缩进是顺便说一句。仍然被破坏,但无论如何:仍然不清楚“combine”是什么意思……还要注意,
file
是python中的内置函数,不要将其用作变量名。非常感谢,这正是我要寻找的!
>>> with open('1.csv') as file:
...     reader = csv.reader(file)
...     col1s = []; col2s = []
...     for row in reader:
...             if "$GPGGA" in row:
...                     col1s.append((row[0], row[1], row[2], row[5]))
...             elif "$GPVTG" in row:
...                     col2s.append((row[0], row[1], row[2]))
...     for each in zip(col1s, col2s):
...             print each[0] + each[1]
... 
('~11:16:04.831', '$GPGGA', '091606.00', '01140.54074205', '~11:16:04.861', '$GPVTG', '40.8')
('~11:16:05.833', '$GPGGA', '091607.00', '01140.54074319', '~11:16:05.863', '$GPVTG', '40.8')
>>>