Hello Tutor,

I'm stuck and i really need help. Google and I can't find answer for my problem. I've wrote app searching through directories database files. It works fine, but only for one path. And I need to use more than one path. This is my code:


import os

files = []

def find_db(paths):
    for path in paths.split():
        for root, dirs, filenames in os.walk(path):
            for name in filenames:
                if name.endswith((".db", ".sqlite", ".sqlite3")):
                    files.append(name + ', ' + os.path.join(root, name))

    return sorted(set(files))


With one path given works great:

>>> find_db("/dbbs")
['april.db, /dbbs/analysis/april.db', 'important.sqlite, /dbbs/temp/important.sqlite', 'march.db, /dbbs/analysis/march.db', 'weelky.sqlite3, /dbbs/analysis/queue/weelky.sqlite3']


But with more paths gives files only for last path given:

>>> find_db("/home/user/Desktop, /dbbs")
['april.db, /dbbs/analysis/april.db', 'important.sqlite, /dbbs/temp/important.sqlite', 'march.db, /dbbs/analysis/march.db', 'weelky.sqlite3, /dbbs/analysis/queue/weelky.sqlite3']


I was trying to debug this code and I think problem is somewhere here:

    for path in paths.split():
        for root, dirs, filenames in os.walk(path):


Can You guide me where i've made mistake? os.walk() accepts one path to look, so was searching something like chain from itertools, or argparse. But none of them works. I couldn't find anything suits my needs. Is there some way do what i need without import anything else than os module? If not what I should search for?


Best Regards


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to