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

如何用Python将CSV中的十进制数批量转换为二进制并导出CSV

这里给你整合出完整的CSV处理方案,基于你提供的转换函数,同时修正了原代码里的小问题(比如重复定义main函数):

完整代码

import csv

def dec2bin(number: int) -> str:
    if number == 0:
        return "0"
    ans = ""
    while number:
        ans += str(number & 1)
        number = number >> 1
    return ans[::-1]

def process_csv(input_path: str, output_path: str, column_index: int = 0):
    # 读取输入CSV并转换
    with open(input_path, mode='r', newline='', encoding='utf-8') as infile:
        reader = csv.reader(infile)
        # 准备输出数据,保留表头(如果有)
        output_rows = []
        for row_num, row in enumerate(reader):
            if row_num == 0:
                # 假设第一行是表头,追加二进制列名
                output_rows.append(row + ["二进制值"])
                continue
            try:
                # 取出指定列的十进制数,转成整数
                dec_num = int(row[column_index])
                bin_str = dec2bin(dec_num)
                # 追加转换后的二进制值到当前行
                output_rows.append(row + [bin_str])
            except ValueError:
                # 处理非数字的行,直接保留原行并标记错误
                output_rows.append(row + ["[非有效数字]"])
    
    # 写入输出CSV
    with open(output_path, mode='w', newline='', encoding='utf-8') as outfile:
        writer = csv.writer(outfile)
        writer.writerows(output_rows)

if __name__ == "__main__":
    # 替换成你的输入、输出CSV路径
    INPUT_CSV = "input_decimals.csv"
    OUTPUT_CSV = "output_binaries.csv"
    # 如果你的十进制数不在第0列,修改这里的索引(从0开始计数)
    TARGET_COLUMN = 0
    process_csv(INPUT_CSV, OUTPUT_CSV, TARGET_COLUMN)

关键说明

  • 函数修正:把原dec2bin返回的0改成了字符串"0",确保所有返回值都是字符串类型,避免写入CSV时出现格式不一致的问题。
  • CSV处理逻辑:
    • 使用Python标准库csv模块,无需额外安装第三方包
    • 自动保留原CSV的表头(如果有),并新增"二进制值"列
    • 加入了异常处理:遇到非数字的行会标记[非有效数字],不会直接崩溃
    • 可以通过TARGET_COLUMN参数指定要转换的列(索引从0开始,比如第1列填1)
  • 使用方法:
    1. 把你的CSV文件路径替换到INPUT_CSV和OUTPUT_CSV变量
    2. 确认目标列的索引,调整TARGET_COLUMN
    3. 直接运行脚本即可

原代码的小问题修正

你原来的代码里重复定义了两次main函数,这会导致只有最后一个main生效,已经在上面的代码里移除了重复定义,换成了处理CSV的逻辑。

内容的提问来源于stack exchange,提问作者Zak Meshou

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:41:19