如何返回文件中的某个数据?

如何返回文件中的某个数据?

文件abc的数据如下:
51 21 28
2008 8 8

#我的问题是如何返回文件第二行第二个数据?
#下面的程序来自于《简明 Python 教程第12章 输入/输出》
f = file('d:/abc.txt')
while True:
  line = f.readline()
  if len(line) == 0:
    break
  print line
f.close()


在lisp语言中可以直接用read函数将空格分割的文本数据转换为实数表结构。



QUOTE:
原帖由 yxpxa 于 2008-8-31 20:59 发表
文件abc的数据如下:
51 21 28
2008 8 8

#我的问题是如何返回文件第二行第二个数据?
#下面的程序来自于《简明 Python 教程第12章 输入/输出》
f = file('d:/abc.txt')
while True:
  line = f.readli ...

#!/usr/bin/env python
f = file('/home/iven/1.txt')
lines = f.readlines()
print lines[1].split(' ')[1]
f.close()

试试这个。
啊哈,对象的方法,非常感谢,我现在对python的认识为零,
还好对VB和lisp比较熟,不难理解。

我试过了,可以,非常感谢。
f = file('d:/abc.txt')

while True:
  line = f.readline()
  if len(line) == 0:
    break
  print line

lines = f.readlines()
aa = lines[1].split(' ')[1]
bb = int(aa) + 1
print lines
  
f.close()

非常感谢 jjj137 的指点, 这个split(' ')的功能真强大
但是如果前面加一个循环的话就会出错,问题应该是出在文件指针上吧,
那么,怎样将文件的指针重置?
试试f.seek(0)。
感谢 jjj137 老师!!
恕我愚钝,我用readline的属性(当然用readines循环就可以了)
返回每一行的第二个数字,好像结果不对。

f = file('d:/abc.txt')
while True:
  line = f.readline()
  if len(line) == 0:
    break
  print line[1].split(' ')
f.close()
print line[1].split(' ')
应该是
print line.split(' ')[1]

这里line是一个字符串,将其用空格分离,生成一个list,用[1]来取该list的第二个值。
当然用readlines更简单:
print "\n".join([line.split(' ')[1] for line in f.readlines()])
呵呵,python果然强,我刚查了一下split的语法,看来又要查join的语法了。
但是本人的英文水平实在拿不出手,这就算是我的第一段python小程序吧。

f = file('d:/abc.txt')
line = f.readline()
while len(line) != 0:  #根据我的习惯,取掉了IF语句和break语句
  print line.split(' ')[1]
  line = f.readline()
f.close()

感谢 jjj137老师 的帮助
最后再啰嗦一句,能否将这些返回的数据建立成一个list表。

呵呵,把join去掉就可以了~
[line.split(' ')[1] for line in f.readlines()]