get a copy of a string leaving original intact
Fredrik Lundh
fredrik at pythonware.com
Fri Oct 21 04:09:48 EDT 2005
"Bell, Kevin" wrote:
> I'm having trouble with something that seems like it should be simple.
>
> I need to copy a file, say "abc-1.tif" to another directory, but if it's
> in there already, I need to transfer it named "abc-2.tif" but I'm going
> about it all wrong.
>
> Here's what doesn't work: (I'll add the copy stuff from shutil after
> figuring out the basic string manipulation.)
define "doesn't work".
> import os
>
> source = r"C:\Source"
> target = r"P:\Target"
>
> files = os.listdir(source)
>
> for f in files:
> if os.path.isfile(target + "\\" + f): # if it already exists
> print f + " exists"
> s = f # i'd like a copy to
> alter
> s = s.replace("-1", "-2")
> print "Altered it to be " + s
> print source + "\\" + s, target + "\\" + s
did you mean
print source + "\\" + f, target + "\\" + s
?
> else:
> print f + " IS NOT THERE YET"
> print source + "\\" + f, target + "\\" + f # use the original
>
> --
> http://mail.python.org/mailman/listinfo/python-list
btw, note that
source + "\\" + f
is better written as
os.path.join(source, f)
e.g.
for f in os.listdir(source):
sourcefile = os.path.join(source, f)
targetfile = os.path.join(target, f)
if os.path.isfile(targetfile):
targetfile = os.path.join(target, f.replace("-1", "-2"))
print "copy", sourcefile, "to", targetfile
shutil.copy(sourcefile, targetfile)
</F>
More information about the Python-list
mailing list