下面是一个按特定列对CSV进行气泡排序的示例代码:
import csv
def bubble_sort(csv_file, column):
with open(csv_file, 'r') as file:
reader = csv.reader(file)
data = list(reader)
# 使用气泡排序算法按指定列排序
for i in range(len(data)-1):
for j in range(len(data)-i-1):
if data[j][column] > data[j+1][column]:
data[j], data[j+1] = data[j+1], data[j]
# 保存排序后的数据到新的CSV文件
sorted_file = csv_file.split('.')[0] + '_sorted.csv'
with open(sorted_file, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
print("排序完成。排序后的数据已保存到文件", sorted_file)
# 示例使用
csv_file = 'data.csv' # 用于排序的CSV文件
column = 2 # 按第三列进行排序(索引从0开始)
bubble_sort(csv_file, column)
这个示例代码中,首先使用csv.reader
将CSV文件的数据读取到一个列表中。然后,使用气泡排序算法按照指定列进行排序。最后,使用csv.writer
将排序后的数据写入一个新的CSV文件中。
请注意,示例中的排序算法是气泡排序,简单但不是最优的排序算法。如果需要更高效的排序算法,可以考虑使用快速排序、归并排序等。