I have nailed down the issue to a single line. out_file.read() is not outputting the file's data correctly, why? Here my file again and some comments where the problem is coming from.
#How to copy data from one file into another
from sys import argv
from os.path import exists
script, from_file, to_file = argv
print "Copying from %s to %s" % (from_file, to_file)
from_data = open(from_file, "r").read()
print "The input file is %d bytes long" % len(from_data)
print "Checking if output file exist..... %r" % exists(to_file)
print "Hit return to continue or Cntl C to quit"
#keyboard input
raw_input()
out_file = open(to_file, "w+")
out_file.write(from_data)
print "Okay all done, your new file now contains:"
#Using out_file.read() doesnt work as expected.
#Special chars get printed out and a bunch of
#nulls get appended to the end of the actual to_file file
#along with the copied content. Why is this?
#print out_file.read()
out_file.close()