Вот реализация, использующая встроенный модуль csv python. Это решение предполагает, что входной файл csv находится в test.csv, и вам нужен вывод в output.csv.
import csv
file = csv.reader(open('test.csv', 'r'))
rows = [row for row in file]
# Python program for implementation of Bubble Sort
# from: https://www.geeksforgeeks.org/python-program-for-bubble-sort/
# modified to sort by the third element in the row per SO question
def bubble_sort(arr):
n = len(arr)
# Traverse through all array elements
for i in range(n - 1):
# range(n) also work but outer loop will repeat one time more than needed.
# Last i elements are already in place
for j in range(0, n - i - 1):
# traverse the array from 0 to n-i-1
# Swap if the element found is greater
# than the next element
if arr[j][2] > arr[j + 1][2]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
sorted_rows = [', '.join(row)+'\n' for row in bubble_sort(rows)]
with open('output.csv', 'w+') as f:
f.writelines(sorted_rows)
Примечание: вы также можете использовать pandas для чтения в файле csv и сортировать с использованием более быстрого встроенного алгоритма в pandas!