That depends which functionalities you want. If you just want to print out a file, you can do
with open('myfile') as f:
for line in f:
print line,
or to concatenate some files, you could do
filenames = ['file1', 'file2', 'file3']
for filename in filenames:
with open(filename) as f:
for line in f:
print line,
There is no general answer. Depending on the functionality you want to replicate, your code will be different. To exactly replicate something odd and special, use the subprocess module and call cat.
If you want to implement the same interface as cat, that seems an odd requirement. You can call cat and you can write the code more naturally. The only reason I can think to completely reimplement cat is for homework, and I would hope you wouldn't ask for the finished product if that is your reason.