LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1478|回复: 4

python读写数组类型的文本文件怎么做?

[复制链接]
发表于 2005-5-14 17:58:52 | 显示全部楼层 |阅读模式
python没有数据类型定义的,可是面对数组类型的数据需要从文本输入或输出到文本要怎么做啊?初学python,哪位大侠给出个代码帮帮小弟啊。谢谢!
学生成绩文本例子:abc.txt
张三    60    70    80    90
李四    10    20    30    40
王五    80    50    70    100
#注明:文本格式是:姓名+四个空格键+语文成绩+四个空格键+数学成绩+四个空格键+英语成绩+四个空格键+物理成绩,一个学生一行
要定义个类来描述吗?用c语言的结构可以描述,python怎么做?需要让这些姓名和单科成绩都可以分别引用的。大侠方便的话给个代码,有些晕。
谢谢。
对python的文件操作不大懂,就知道个readline函数
发表于 2005-5-15 13:21:01 | 显示全部楼层
在Python中用list实现一个二维数组,以便用来引用姓名和单科成绩。如以下代码所示:

#!/usr/local/bin/python
                                                                                
import sys
                                                                                
file=open(sys.argv[1],'r')
row=[]
for str in file.readlines():
        column=[]
        line=str.split()
        for field in line:  column.append(field)
        row.append(column)

                                                                                
print '输出:'
for people in row:
        
print '%s 的数学成绩为: %s' %(people[0],people[2])


用row[j]来引用单个元素。由于没有设置数组的边界,所以上述代码也可读别的格式的类似文件,如用tab和任意个空格分隔数据,也可再增加几列,如  
张三 60 70 80 90 76 88 95
李四 10 20 30 40  63  72 93
王五 80 50 70 100  83 77 100
......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-15 21:01:16 | 显示全部楼层
谢谢chunchengfh
回复 支持 反对

使用道具 举报

发表于 2005-5-15 22:58:43 | 显示全部楼层
请问楼主如何解决的中文问题?
回复 支持 反对

使用道具 举报

发表于 2005-5-16 13:04:39 | 显示全部楼层
如果是输出列表中的单个元素,使用"print"可以正确输出中文;但是如果输出整个列表,则会输出中文的内部表示,在命令行下如下所示:
>>> a=['老师','学生']
>>> a
['\xc0\xcf\xca\xa6', '\xd1\xa7\xc9\xfa']
>>> a[0]
'\xc0\xcf\xca\xa6'
>>> print a
['\xc0\xcf\xca\xa6', '\xd1\xa7\xc9\xfa']
>>> print a[0],a[1]
老师 学生
>>>

至于如何在整个列表中显示中文,我也不大清楚。但可以用for循环实现:

>>> for s in a: print s,
...
老师 学生
>>>
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表