Python: How do I create sequential file names?

后端 未结 3 1378
星月不相逢
星月不相逢 2020-12-06 08:11

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.

3条回答
  •  盖世英雄少女心
    2020-12-06 08:29

    Two choices:

    1. Counter File.

    2. 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.

提交回复
热议问题