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)
# we could two on one line too, how?
input = open(from_file)
indata = input.read()
print "The input file is %d bytes long" % len(indata)
print "Does the output file exist? %r" % exists(to_file)
print "Ready, hit return to continue, CTRL-C to abort."
raw_input()
output = open(to_file, 'w')
output.write(indata)
print "Alright, all done."
output.close()
input.close()
On the first two lines I have some idea of what is going on, but want to make sure I fully understand it, as this seems like it might be important.
If you do import sys
, you'll get to access the functions and variables in the module sys via sys.foo
or sys.bar()
. This can get a lot of typing, especially if using something from submodules (e.g. I often have to access django.contrib.auth.models.User
).
To avoid such this redundancy, you can bring one, many or all of the variables and functions into the global scope. from os.path import exists
allows you to use the function exists()
without having to prepend it with os.path.
all the time.
If you'd like to import more than one variable or function from os.path, you could do
from os.path import foo, bar
.
You can theoretically import all variables and functions with from os.path import *
, but that is generally discouraged because you might end up overwriting local variables or functions, or hiding the imported ones. See What's the difference between "import foo" and "from foo import *"? for an explanation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With