I want my program to be able to write files in a sequential format, ie: file1.txt, file2.txt, file3.txt. It is only meant to write a single file upon execution of the code. It can't overwrite any existing files, and it MUST be created. I'm stumped.
+2
A:
Two choices:
Counter File.
Check the directory.
Counter File.
with open("thecounter.data","r") as counter:
count= int( counter.read() )
count += 1
Each time you create a new file, you also rewrite the counter file with the appropriate number. Very, very fast. However, it's theoretically possible to get the two out of synch. in the event of a crash.
You can also make the counter file slightly smarter by making it a small piece of Python code.
settings= {}
execfile( "thecounter.py", settings )
count = settings['count']
Then, when you update the file, you write a little piece of Python code: count = someNumber
. You can add comments and other markers to this file to simplify your bookkeeping.
Check the directory.
import os
def numbers( path ):
for filename in os.listdir(path):
name, _ = os.path.splitext()
yield int(name[4:])
count = max( numbers( '/path/to/files' ) )
count += 1
Slower. Never has a synchronization problem.
S.Lott
2010-03-08 11:20:42
http://stackoverflow.com/questions/2401235/python-help-with-counters-and-writing-files
badp
2010-03-08 12:45:14
+1
A:
Or you could append the current system time to make unique filenames...
ultrajohn
2010-03-08 11:22:16