统计闭合括号后到非逗号字符前的逗号数量
统计特定行闭合括号后的连续逗号数量
以下是几种针对需求的解决方案,均只统计目标行中第一个)之后、首个非逗号字符前的逗号数量:
方法1:纯Python字符串处理
直接读取文件并定位目标行处理,无需额外依赖:
with open('your_file.csv', 'r') as f: for line in f: if 'Job' in line: # 定位第一个闭合括号的位置 close_paren_pos = line.find(')') if close_paren_pos != -1: comma_count = 0 # 从括号后开始遍历统计连续逗号 for char in line[close_paren_pos + 1:]: if char == ',': comma_count += 1 else: break print(f"目标逗号数量: {comma_count}") break
方法2:Pandas处理(适合已加载DataFrame的场景)
如果已经用Pandas读取了CSV文件,可按以下方式处理:
import pandas as pd # 加载CSV,不设置表头(因文件大部分为逗号) df = pd.read_csv('your_file.csv', header=None) # 筛选出包含"Job"的目标行 job_line = df[df[0].str.contains('Job', na=False)].iloc[0, 0] close_paren_pos = job_line.find(')') if close_paren_pos != -1: comma_count = 0 for char in job_line[close_paren_pos + 1:]: if char == ',': comma_count += 1 else: break print(f"目标逗号数量: {comma_count}")
方法3:命令行awk工具(适合快速批量处理)
无需编写脚本,用awk命令直接完成统计:
awk '/Job/ { paren_idx = index($0, ")") if (paren_idx > 0) { target_str = substr($0, paren_idx + 1) count = 0 for (i=1; i<=length(target_str); i++) { if (substr(target_str, i, 1) == ",") count++ else break } print count exit } }' your_file.csv
核心逻辑说明
所有方法均遵循同一逻辑:
- 定位包含
Job的目标行(确保只处理指定行) - 找到该行中第一个闭合括号
)的位置 - 从该位置后开始遍历字符,统计连续的逗号,直到遇到非逗号字符即停止统计,避免误算其他位置的逗号
内容的提问来源于stack exchange,提问作者MCla
相关产品推荐
相关产品推荐

