Python提供了os.walker或glob之类的内置模块来构建类似于find的函数,以列出给定目录及其子目录中的文件或文件夹。
Python 3.6.8 (default, Apr 25 2019, 21:02:35) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> cwd =os.getcwd()>>> print("current dir {}".format(cwd)) current dir /home/user/Desktop/my_work/python_samples >>> files = [] # r =根目录,d =目录,f =文件 >>> for r, d, f in os.walk(cwd): ... for file in f: ... if '.py' in file: ... files.append(os.path.join(r, file)) ... >>> for f in files: ... print(f)...
输出结果
/home/user/Desktop/my_work/python_samples/src/samples/regular_expression_examples.py /home/user/Desktop/my_work/python_samples/src/samples/if_main.py /home/user/Desktop/my_work/python_samples/src/samples/second_module.py /home/user/Desktop/my_work/python_samples/src/samples/sub_process_samples.py /home/user/Desktop/my_work/python_samples/src/samples/dictionaries.py
Python 3.6.8 (default, Apr 25 2019, 21:02:35) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> cwd =os.getcwd()>>> print("current dir {}".format(cwd)) current dir /home/user/Desktop/my_work/python_samples >>> folders = [] >>> for r,d,f in os.walk(cwd): ... for folder in d: ... folders.append(os.path.join(r, folder)) ... >>> for f in folders: ... print(f)
输出结果
/home/user/Desktop/my_work/python_samples/src /home/user/Desktop/my_work/python_samples/test /home/user/Desktop/my_work/python_samples/test_1
Python 3.6.8 (default, Apr 25 2019, 21:02:35) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux Type "help", "copyright", "credits" or "license" for more information. import glob cwd = "/home/user/Desktop/my_work/python_samples/" >>> files = [f for f in glob.glob(cwd + "**/*.py", recursive=True)] >>> for f in files: ... print(f)['/home/user/Desktop/my_work/python_samples/src/samples/regular_expression_examples.py', '/home/user/Desktop/my_work/python_samples/src/samples/if_main.py', '/home/user/Desktop/my_work/python_samples/src/samples/second_module.py', '/home/user/Desktop/my_work/python_samples/src/samples/sub_process_samples.py']
Python 3.6.8 (default, Apr 25 2019, 21:02:35) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux Type "help", "copyright", "credits" or "license" for more information. import glob cwd = "/home/user/Desktop/my_work/python_samples/" >>> folders = [f for f in glob.glob(cwd + "**/", recursive=True)] >>> for f in folders: ... print(f)
输出结果
/home/user/Desktop/my_work/python_samples/ /home/user/Desktop/my_work/python_samples/src/ /home/user/Desktop/my_work/python_samples/src/samples/