Running a python script on all the files in a directory

前端 未结 4 708
有刺的猬
有刺的猬 2020-12-19 07:45

I have a Python script that reads through a text csv file and creates a playlist file. However I can only do one at a time, like:

python playlist.py foo.csv          


        
4条回答
  •  被撕碎了的回忆
    2020-12-19 07:56

    Is it a single directory, or nested?

    Ex.

    topfile.csv
    topdir
       --dir1
           --file1.csv
           --file2.txt
           --dir2
               --file3.csv
               --file4.csv
    

    For nested, you can use os.walk(topdir) to get all the files and dirs recursively within a directory.

    You could set up your script to accept dirs or files:

    python playlist.py topfile.csv topdir

    import sys
    import os
    
    def main():
        files_toprocess = set()
        paths = sys.argv[1:]
        for p in paths:
            if os.path.isfile(p) and p.endswith('.csv'):
                files_toprocess.add(p)
            elif os.path.isdir(p):
                for root, dirs, files in os.walk(p):
                    files_toprocess.update([os.path.join(root, f) 
                                            for f in files if f.endswith('.csv')])
    

提交回复
热议问题