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

如何将含逗号与空格分隔整数的TXT文件转为指定格式整数列表?

问题描述

我有一个存储整数的TXT文件,部分整数以逗号分隔,部分以空格分隔,文件内容如下:

7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1

22 13 17 11  0

8  2 23  4 24

21  9 14 16  7

6 10  3 18  5

需要生成两个列表:

  • 一个存储第一行的逗号分隔整数
  • 另一个存储其余行的子列表(每行空格分隔整数为一个子列表)

预期结果:

list_1 = [7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1]
list_2 = [[22, 13, 17, 11,  0], [8,  2, 23,  4, 24], [21,  9, 14, 16,  7], [6, 10,  3, 18,  5]]

尝试过以下代码,但因分隔符不同报错,无法读取逗号分隔数值:

b=[[int(x) for x in i.split()] for i in open("file", "r").readlines()]
解决方案

可以分步骤处理文件内容,分别适配两种分隔符:

  1. 读取文件所有行,过滤掉空行
  2. 单独处理第一行,用逗号分割后转成整数列表
  3. 处理剩余行,每行用空格分割(split()会自动处理多个空格)后转成整数子列表

完整代码如下:

# 读取文件并过滤空行
with open("file.txt", "r") as f:
    lines = [line.strip() for line in f if line.strip()]

# 处理第一行(逗号分隔)
list_1 = [int(num) for num in lines[0].split(',')]

# 处理剩余行(空格分隔)
list_2 = []
for line in lines[1:]:
    # split()默认按任意空白符分割,自动忽略多个空格
    sub_list = [int(num) for num in line.split()]
    list_2.append(sub_list)

# 验证结果
print("list_1 =", list_1)
print("list_2 =", list_2)

代码说明

  • 使用with open(...)确保文件正确关闭,避免资源泄漏
  • line.strip()和if line.strip()过滤掉空行,避免处理无效内容
  • 第一行用split(',')按逗号分割,剩余行用split()按任意空白符分割(包括多个空格、制表符等),适配不同的空格数量
  • 所有分割后的字符串都通过int()转成整数类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:31:01