Difference between Popen and open() for reading a file
MRAB
python at mrabarnett.plus.com
Thu Apr 22 15:04:33 EDT 2010
J wrote:
> I was reading something from a code review a little while ago and saw
> something that's got my curiosity up...
>
> Say I had a file, foo.txt that I wanted to read from, only one time
> and only read.
>
> So what's the difference between this:
>
> mylist = Popen(["cat","foo.txt"], stdout=PIPE).communicate()[0].splitlines()
>
> and this:
>
> f = open('foo.txt')
> mylist = f.readlines()
> f.close
>
That last line should be:
f.close()
> Is there a reason why you would not use subprocess.Popen for this,
> other than just not relying on external programs to perfrom the task?
>
> what if that file only has one line in it, and that's all you're
> interested in, and the file is guaranteed to only have that one line
> it it?
>
> For example:
>
> say foo.txt contained only the number 123456789
>
> what's wrong with doing this:
>
> my_int = int(commands.getoutput('cat foo.txt')
>
> or via the subprocess.Popen method mentioned above?
Why would you want to call an external program to do something when you
could do it directly? It seems like a strange thing to do, like driving
to your kitchen! :-)
More information about the Python-list
mailing list