我发现这个类采用了空格分隔文件,如果有多个空格,它们将被视为一个单独的分隔符。如何在文件中看到此效果?
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!
答案 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中产生行)。因此,访问文件的方法是迭代内容。