python如何将txt文件读成数组
1、为方便演示,我们准备一个1.txt文本文件做为读取对象,内容如下:
[-6,张三, 29, -19, -8, -10, -2, -2]
[3, 李四, -21, -8, 0, 2, 10, -9]
[-6, 王五, -8, 30, -5, -4, 4, -4]
[9, 赵六, 22, -1, 4, -4, 0, 10]
[29, 孙七, 25, 14, -6, -1, 3, 3]
[18, 钱八, 68, 27, -1, -3, -16, 8]
2、打开记事本,输入以下python代码。然后,依次点击菜单“文件”——“保存”,在保存对话框中,输入文件名为:test.py,保存类型为:所有文件。
file = open("1.txt","r")
list = file.readlines()
代码的作用是:以只读方式打开当前目录下的1.txt文件,并将文件的每行内容赋值给list变量。
3、这时的list,其次就是一个数组,每个数组元素就是文本文件的一行,我们可以可以通过print来进行验证。代码如下:
file = open("1.txt","r")
list = file.readlines()
i=0
for fields in list:
i=i+1;
print 'No%s:%s'%(i,fields);
4、现在我们已经将txt文件转换成了行数组,我们再来将每列也转换成数组。
file = open("1.txt","r")
list = file.readlines()
for fields in list:
fields=fields.strip();
fields=fields.strip("[]");
fields=fields.split(",");
其中,fields.strip()用来删除字符串两端的空白字符。fields.strip("[]")用来删除字符串两端方括号。fields.split(",")的作用是以逗号为分隔符,将字符串进行分隔。
5、这时的fields其实就是个组数,每个数据元素就是被逗号分隔出来的字符串段。同样,我们可以用下面的代码来验证。
file = open("1.txt","r")
list = file.readlines()
for fields in list:
fields=fields.strip();
fields=fields.strip("[]");
fields=fields.split(",");
for field in fields:
print "%s"%(field);
print "--------------";
可以看到,文本文件的每行文本也被我们转换成了数组。
6、现在我们只需将行数组和列数组组合起来,就可以将整个文本文件转化为一个数组了,修改代码如下:
file = open("1.txt","r")
list = file.readlines()
lists = []
for fields in list:
fields=fields.strip();
fields=fields.strip("[]");
fields=fields.split(",");
lists.append(fields);
其中lists数组就是整个txt文件转换成的数组了。
7、同样,我们也来验证一下,我们分别从lists这个二维数组中取出:第一行的第一、二两个字段,第四行的第五、六个字段,对应的数组元素就是lists[0][0],lists[0][1]和lists[3][4],lists[3][5],因为数组的下标都是从0开始的。
file = open("1.txt","r")
list = file.readlines()
lists = []
for fields in list:
fields=fields.strip();
fields=fields.strip("[]");
fields=fields.split(",");
lists.append(fields);
print lists[0][0],lists[0][1];
print lists[3][4],lists[3][5];
从下图中可以看到,我们的转换是正确的!