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
相关产品推荐
相关产品推荐

