首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中,如何从.txt文件中获得整数列表,该文件在多行上分隔空格和“r\n”分隔的数字?

在Python中,如何从.txt文件中获得整数列表,该文件在多行上分隔空格和“r\n”分隔的数字?
EN

Stack Overflow用户
提问于 2015-07-12 01:20:03
回答 3查看 9.3K关注 0票数 7

一开始就知道行数。

输入文件:

代码语言:javascript
运行
复制
0 1 2 3 4 5 6 7 8
8 1 2 3 4 5 6 7 0
4 0 8 2 6 3 7 1 5
..n such lines

预期结果:

代码语言:javascript
运行
复制
line1 = [0, 1, 2, 3, 4, 5, 6, 7, 8]
line2 = [8, 1, 2, 3, 4, 5, 6, 7, 0]
line3 = [4, 0, 8, 2, 6, 3, 7, 1, 5]
.
.
linen = [n1, ........           n9]

我现在:

  • 在每一行上对‘\r’的文件进行条带化
  • 使用.split()使每行在空格处分离,int(i)转换为整数

代码:

代码语言:javascript
运行
复制
#The lines start at the 7th byte in the input file.
f.seek(7)

#Getting rid of the '\r\n'
lines = [line.rstrip('\n\r') for line in f]

#1st line
line0 = lines[0]
line = [[int(i) for i in line0.split()]]
print line


...& so on for the 'n' lines
EN

Stack Overflow用户

回答已采纳

发布于 2015-07-12 01:23:25

str.split()已经从末尾删除了空格,包括一个换行符。不需要删除\r;Python已经将行分隔符转换为\n

不要尝试为多个line*变量赋值;只需使用列表:

代码语言:javascript
运行
复制
with open(filename, 'r') as fobj:
    all_lines = [[int(num) for num in line.split()] for line in fobj]

现在,您有了一个带有整数的列表。

您可以在从文件中读取每一行时处理它;此时移向最终产品,而不是将所有行保存在内存中:

代码语言:javascript
运行
复制
with open(filename, 'r') as fobj:
    for line in fobj:
        numbers = [int(num) for num in line.split()]
        # do something with this line of numbers before moving on to the next.
票数 6
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31363453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档