python script to concatenate all the files in the directory into one file

后端 未结 6 1059
甜味超标
甜味超标 2020-12-15 07:55

I have written the following script to concatenate all the files in the directory into one single file.

Can this be optimized, in terms of

  1. idiomat

6条回答
  •  醉梦人生
    2020-12-15 08:27

    Use shutil.copyfileobj to copy data:

    import shutil
    
    with open(outfilename, 'wb') as outfile:
        for filename in glob.glob('*.txt'):
            if filename == outfilename:
                # don't want to copy the output into the output
                continue
            with open(filename, 'rb') as readfile:
                shutil.copyfileobj(readfile, outfile)
    

    shutil reads from the readfile object in chunks, writing them to the outfile fileobject directly. Do not use readline() or a iteration buffer, since you do not need the overhead of finding line endings.

    Use the same mode for both reading and writing; this is especially important when using Python 3; I've used binary mode for both here.

提交回复
热议问题