Thanks for the patch, Vajrasky, but I chose a different fix, since the proposed one could leave the file open if the shlex constructor raised an error. Not particularly important, but as long as we are cleaning up the code we might as well make it as clean as we can.
Since 2.7 doesn't generate ResourceWarnings I chose not to apply it there.