PYTHON中如何将固定格式的文本文件转换成二维数组

python 语言 文本文件里有个
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
这样格式的文本 如何将其转换成M[0][0] =1 M[1][0] =2这种
我想到的是:
>>> s=[]
>>> f = open('c:\\1.txt')
>>> for line in f:
if line[-1]=='\n':
line = line[0:-1]
line = line.replace(' ','')
s.append(line)
>>> print s
但是后面就不知道怎么弄了

content = '''
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
'''

array = [map(int,ln.strip().split(' '))
for ln in content.splitlines() if ln.strip()]

import pprint
pprint.pprint(array)

[[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4],
[5, 5, 5, 5, 5]]
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-05

    既然是固定格式的那么,我们可以按照固定的长度取字符串;

    将取出的字符串按照自己设定的数据结构存入到数组之中;

    在Python中是没有数组这一说的,你可以使用list嵌套即可;

    还有另外一种形式就是使用第三方库,例如numpy。

第2个回答  2015-09-14
假设有个文件,形式如下:
  1.1
  0.1
  0.2
  0.3
  0.4

  2.4
  3.3
  2.5
  1.3
  4.5

  3.6
  8.1
  9.8
  5.6
  3.1
  有3组,每组5个数,要求外循环三次,内循环5次,把整个数组存到一个5行3列的2维数组中。
  代码如下:
  #!/usr/bin/env python
  #coding:utf-8
  from pprint import pprint
  vbuf=open('/tmp/1.txt','r').read().split('\n\n')
  result=zip(*[x.strip().split('\n') for x in vbuf])
  pprint(result)
相似回答