如何用Python拆分字符串并将每个Token逐行输出?
解决方法
你的核心问题是之前的代码都是按行分割输入,但你的输入是单行的逗号分隔字符串,所以需要按逗号拆分token,而非按行。以下是两种可行的实现方式:
方法1:直接按逗号拆分(适用于简单场景)
用split(',')将输入字符串拆分为token列表,再逐个打印:
echo '"a1","a2","a3"'|python3 -c "import sys; for token in sys.stdin.read().strip().split(','): print(token)"
执行后输出:
"a1" "a2" "a3"
strip():去除输入字符串首尾可能存在的空格或换行符split(','):按逗号将字符串拆分为独立token
方法2:使用csv模块(适用于复杂CSV格式场景)
如果输入是标准CSV格式(比如字段内包含逗号),用csv模块解析更可靠:
echo '"a1","a2","a3"'|python3 -c "import sys, csv; for row in csv.reader(sys.stdin): for cell in row: print(cell)"
该方法会自动处理带引号的CSV字段,避免因字段内特殊字符导致的拆分错误。
为什么之前的方法无效?
你之前使用的splitlines()是按换行符分割输入内容,但你的输入是单行字符串,拆分后仍然是整个原始字符串,自然无法达到拆分token的效果。
内容的提问来源于stack exchange,提问作者q0987
相关产品推荐
相关产品推荐

