[Tutor] Creating new files w/o overwriting existing ones
Kent Johnson
kent37 at tds.net
Mon Apr 9 12:39:46 CEST 2007
Dick Moores wrote:
> Sorry if my Subject line isn't clear about what my question is.
>
> I have a script that uses the turtle and random modules to create SVG
> files, one after another, in a directory just for the SVGs. The
> script assigns filenames in the form, "n.svg", where n is an integer.
> E.g. 1.svg, 2.svg. 3.svg, ... 44.svg, 45.svg. As it is now, I have to
> reset the starting integer when restarting the script, so as to not
> overwrite the files already created. Thus if the highest number
> filename is 45.svg, I have to configure the script so that it begins
> to create SVGs with filenames of 46.svg on up.
>
> I'm hoping to add a function that will find find that highest number
> filename in the directory. Is this possible?
>
> I should add that the numbers of the existing files will not
> necessarily be consecutive. There could be gaps. E.g., 4.svg.,
Just look at the existing files and figure out the max. This is pretty
straightforward with os.listdir(), simple string manipulations -
endswith() and split() or os.path.splitext() - and the int() function to
convert the prefix to an integer.
I wasn't going to show you the code but I can't resist putting it into a
one-liner (which will break if you have other files in the same dir) -
max(int(os.path.splitext(f)[0]) for f in os.listdir(...) if
f.endswith('.svg'))
Setting a bad example for tutors everywhere :-)
Kent
More information about the Tutor
mailing list