Some modifications

There are some mostly small modifications I made in here.  First off, by no means do you have to accept this pull request, or do any of these mods, it's just small stuff.  Largely, there wasn't anything wrong in here, I just mostly modded it to how I code (with that said, I am by no means an expert developer at all).  So with that disclaimer, I'll start talking about some of the mods.

A lot of the stuff you see done spacing wise, and renaming functions is for PEP8 compliance.  I've started trying to make my code be compliant with it.  It's basically a list of standards that people are using to standardize python code.  There's additional things I haven't touched here yet, like variable names, but I did modify function names and line length.

It's good you're using "with" to open files.  The cool thing about it, is it is designed to auto-close files.  So you don't need to call .close() anymore (I removed those calls).

Personally, I thought there were a lot of blank/new lines in the output, and removed a lot of them to make the report a little more condensed.  Again, personal preference, so do with that what you will.

You can use .strip() by itself, and by default it will remove any whitespace (including "\n") from a string (versus using .rstrip("\n")).  Again, personal preference, but I think this is what I've seen used more often.

I didn't get a chance to really dive into the logic as of yet, but at first glance it looks sound, might be able to be a little shorter, but not wrong or anything.  If you want me to get looking into that, let me know.  

The tool works as I would expect it from a user's perspective too.  The only thing I can think of at the moment (usability wise) is to alert the user when writing out to a file and that file already exists.  Other than that, it looks pretty sweet man.  Nice work with it!  Let me know what else I can help you with.