Связанный вопрос: https://stackoverflow.com/posts/18164848
Входной файл input.txt представляет собой Unicode txt, разделенный табуляцией, с
a A e f m
b B g h
c C i j
b B k l
Я хочу сопоставить первый и второй столбец и объединить. Итак, я хочу получить output.txt с
a A e f m
b B g h k l
c C i j
Код должен определить максимальное количество столбцов на входе. Так как в этом примере 5, «k l» были поставлены из 6-го столбца.
На самом деле мне почти удалось сделать это с помощью Matlab, когда они все числа. Но когда это были буквы, Matlab так плохо справлялся с юникодом, хотя я читал stackoverflow о том, как работать с юникодом в Matlab, я сдался. Итак, теперь я обратился к python.
Нирк на https://stackoverflow.com/posts/18164848 ответил, что подойдет следующая строка.
awk -F\t '{a=$1 "\t" $2; $1=$2=""; x[a] = x[a] $0} END {for(y in x) напечатать y,x[y]}'
Однако этот код, похоже, не указывает входной и выходной файл.