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

Python3如何统计任意空格分隔的非CSV外部文件列数

处理任意空格分隔文件的列数统计方法

针对你遇到的问题,这里有两种实用的Python解决方法:

方法一:使用字符串默认的split()方法

Python的split()不带参数时,会自动将**任意数量的空白字符(包括多个空格、制表符、换行符)**视为分隔符,同时忽略行首行尾的空白,完美解决多个空格分割的问题。

示例代码:

with open('data.dat', 'r', encoding='utf-8') as f:
    for line_num, line in enumerate(f, 1):
        # 先去除行首行尾空白,跳过空行
        trimmed_line = line.strip()
        if not trimmed_line:
            print(f"第{line_num}行是空行")
            continue
        # 分割列
        columns = trimmed_line.split()
        print(f"第{line_num}行的列数: {len(columns)}")

方法二:用csv模块适配空格分隔格式

如果后续还要做类似CSV的结构化处理,推荐用csv模块,通过配置参数让它支持任意空格分隔:

  • 设置delimiter=' '指定分隔符为空格
  • 设置skipinitialspace=True忽略分隔符后的多余空格

示例代码:

import csv

with open('data.dat', 'r', encoding='utf-8') as f:
    # 配置csv阅读器
    reader = csv.reader(f, delimiter=' ', skipinitialspace=True)
    for line_num, row in enumerate(reader, 1):
        # 过滤可能的空元素(行尾空格导致)
        valid_columns = [col for col in row if col]
        if not valid_columns:
            print(f"第{line_num}行是空行")
            continue
        print(f"第{line_num}行的列数: {len(valid_columns)}")

注意事项

  • 两种方法都会自动跳过空行,避免统计错误
  • 如果文件有表头行,用csv.DictReader时可以搭配同样的参数,同时指定fieldnames(如果表头不明确的话)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:21:35