将txt文件转换为int数组

时间:2016-11-29 22:38:45

标签: python arrays io int python-2.x

我有一个类似于:

的文本文件
-45 64 -41 -51
  95 96 -74     -74 56 41
41 64    -62 75

我尝试将其转换为int数组。

到目前为止,我尝试将它变成一个大字符串,然后像这样转换它,但是当我试图摆脱空格时,输出看起来仍然像txt文件。

file = open("dir", "r")
line = file.read()
line.strip()
line.replace(" ","")
print line
line.close()

我做错了什么?我可以直接从文件中读取它到一个int数组吗?

5 个答案:

答案 0 :(得分:6)

你几乎就在那里 - 你需要使用str.split而不是str.stripstr.replace。然后map结果为整数。您也可以使用上下文管理器自动关闭文件(而不是line)。

with open('dir') as f:
    content = file.read()
array = content.split()
numbers = map(int, array)
print array

答案 1 :(得分:2)

使用列表理解,答案是:

/groups/{id}/users     GET, POST, DELETE

<强>输出:

with open('dir', 'r') as f:
    data = f.read()

res = [int(i) for i in data.split()]

答案 2 :(得分:0)

.input-group-addon {
    padding: 0px 6px;
}

答案 3 :(得分:0)

我认为这应该可行

将numpy导入为np

数字= np.loadtxt('filename.txt',分隔符='\ t')

答案 4 :(得分:-1)

您错过了split()步骤。

将整个文本(是的,整个文本,包括换行符)加载到一个字符串中,并在其上调用split()方法,不带任何参数 - 这将分散在任何可能是您想要的空格上。然后map int到结果上以生成您想要的int s的生成器。如果确实需要实现,请在生成器上使用list()

请注意,纯python中没有“整数数组”(有一个模块array包装C数组,你通常用它来提高内存效率),只有{{1 s,可以包含任何类型。您可以确保它在制作时仅包含list