我有一个类似于:
的文本文件-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数组吗?
答案 0 :(得分:6)
你几乎就在那里 - 你需要使用str.split
而不是str.strip
和str.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
。