Я написал следующий код для объединения CSV-файла, разделенного табуляцией, с другим CSV-файлом, разделенным запятыми (который также имеет заголовок). Конечный результат представляет собой CSV-файл с разделением табуляцией без заголовка.
with open('train.csv',"r") as infile1, open("test.csv", "r") as infile2, open('final.csv',"a") as outfile:
reader1 = csv.reader(infile1, delimiter='\t')
reader2 = csv.reader(infile2)
next(reader2, None) # skip the headers
writer = csv.writer(outfile, delimiter='\t')
for row in reader1:
writer.writerow(row)
for row in reader2:
writer.writerow(row)
Ниже приведены примеры файлов для train.csv
и test.csv
соответственно
main-captions MSRvid 2012 0001 5.000 A plane. is taking off.
main-captions MSRvid 2012 0004 3.800 A man. is playing a flute.
Domain,Task Name,Year,Index,Score,Sentence 1,Sentence 2
Exp,Exp,2020,1,5,product,damage
Exp,Exp,2020,2,5,product,broken
Приведенный выше код работает нормально.
Но есть ли более короткий способ добиться этого? Скажем, это использует какие-либо новые пакеты или, возможно, функции в модуле csv
?