You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python对CSV文件中题号-答案数据升序排列并拆分至独立单元格

解决方案

没问题,这事儿很简单,我给你写个清晰的Python脚本,一步到位处理你的需求:

思路拆解

  1. 先把你提供的逗号分隔字符串拆成单个的「题号:答案」条目
  2. 逐个解析每个条目,把题号转成整数(方便排序),同时处理像31:这种空答案的情况
  3. 按题号从小到大排序所有条目
  4. 把排序后的数据写入新的CSV文件,每个题号和答案各占一个单元格

完整代码

import csv

# 你的原始数据(如果是从文件读取的话,可以换成读取文件的代码)
raw_data = "30:2,29:3,28:2,13:3,12:3,5:5,10:4,4:4,11:2,3:3,1:4,2:4,31:,32:4,6:5,9:5,7:2,8:3,22:3,21:3,18:4,16:2,20:4,19:4,23:2,27:4,14:2,26:2,24:3,25:3"

# 拆分每个题号-答案对
entries = raw_data.split(',')

# 处理每个条目,转换成可排序的格式
sorted_entries = []
for entry in entries:
    # 只拆分一次冒号,避免答案里有冒号的情况(虽然你的例子里没有,但这样更健壮)
    q_num_str, ans = entry.split(':', 1)
    q_num = int(q_num_str)
    sorted_entries.append( (q_num, ans) )

# 按题号升序排序
sorted_entries.sort(key=lambda x: x[0])

# 写入输出CSV
output_filename = "sorted_question_answers.csv"
with open(output_filename, 'w', newline='', encoding='utf-8') as csv_file:
    writer = csv.writer(csv_file)
    # 写入表头
    writer.writerow(["题号", "答案"])
    # 写入所有排序后的数据
    writer.writerows(sorted_entries)

print(f"搞定!排序后的CSV已经保存到 {output_filename}")

代码说明

  • 用split(',')把长字符串拆成单个条目,split(':',1)确保即使答案里有冒号(比如特殊场景)也不会出错
  • 把题号转成整数是为了让排序是数值排序(而不是字符串排序,比如避免10排在2前面)
  • newline=''是Python写入CSV的最佳实践,防止Windows系统下出现多余的空行
  • 空答案的条目(比如31)会原样保留,写入CSV时对应单元格就是空的

运行这个脚本后,你会得到一个新的CSV文件,里面的数据是按题号从1到32升序排列的,每个题号和答案各占一列,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Rafiullah Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:46:27