如何按空格和行尾字符拆分文件内容?

Ube*_*per 1 python list-comprehension

当我执行以下列表理解时,我最终得到嵌套列表:

channel_values = [x for x in [ y.split(' ') for y in
    open(channel_output_file).readlines() ] if x and not x == '\n']
Run Code Online (Sandbox Code Playgroud)

基本上我有一个由以下内容组成的文件:

7656 7653 7649 7646 7643 7640 7637 7634 7631 7627 7624 7621 7618 7615
8626 8623 8620 8617 8614 8610 8607 8604 8600 8597 8594 8597 8594 4444
<snip several thousand lines>
Run Code Online (Sandbox Code Playgroud)

此文件的每一行都以新行终止.

基本上我需要将每个数字(它们都由一个空格分隔)添加到列表中.

有更好的方法通过列表理解来做到这一点吗?

Luk*_*ský 16

您不需要列表推导:

channel_values = open(channel_output_file).read().split()
Run Code Online (Sandbox Code Playgroud)


Nad*_*mli 6

这样做:

channel_values = open(channel_output_file).read().split()
Run Code Online (Sandbox Code Playgroud)

split()将根据包含的空格进行拆分' ' '\t' and '\n'.它会将所有值拆分为一个列表.

如果你想要整数值,你可以这样做:

channel_values = map(int, open(channel_output_file).read().split())
Run Code Online (Sandbox Code Playgroud)

或列表推导:

channel_values = [int(x) for x in open(channel_output_file).read().split()]
Run Code Online (Sandbox Code Playgroud)