如何在文件中查看课程结果?

时间:2009-09-19 01:52:10

标签: python class

我发现这个类采用了空格分隔文件,如果有多个空格,它们将被视为一个单独的分隔符。如何在文件中看到此效果?

class FH:

    def __init__(self, fh):
        self.fh = fh

    def close(self):
        self.fh.close()

    def seek(self, arg):
        self.fh.seek(arg)

    def fix(self, s):
        return ' '.join(s.split())

    def next(self):
        return self.fix(self.fh.next())

    def __iter__(self):
        for line in self.fh:
            yield self.fix(line)

那么如何在文件中看到这项工作呢?我创建了一个包含多个空格的文件,以便查看它的实际效果。

我做到了这一点:

In [31]: FH('classfhtry.csv')
Out[31]: 

In [32]: r = FH('classfhtry.csv')

In [33]: r
Out[33]: 

In [34]: print r
-------> print(r)


In [35]: f = open(r)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/blahblahblah/Documents/Programming/EXERCISES/piece.py in ()
----> 1 
      2 
      3 
      4 
      5 

TypeError: coercing to Unicode: need string or buffer, instance found

我希望看到我的班级在行动!感谢任何2cents!

2 个答案:

答案 0 :(得分:5)

看起来这个类在初始化器中获取文件(不是文件名)。尝试:

r = FH(file('classfhtry.csv', 'r'))
for line in r:
    print line

答案 1 :(得分:0)

dcrosta是正确的。该类需要文件中以空格分隔的内容。 有一个像这样的文件:

somefile.txt

one two
three four
five six

并按照上面建议的方法进行操作。该类是一个迭代器(它从文件obj中产生行)。因此,访问文件的方法是迭代内容。