您可以使用os.walk https://docs.python.org/3/library/os.html#os.walk:
获取目录、文件名列表:
import os
matches = []
for dirpath, dirnames, filenames in os.walk(os.path.expanduser('~/x/y')):
matches.extend(os.path.join(dirpath, x) for x in dirnames + filenames)
要将文件列表写入文本文件:
import os
with open(os.path.expanduser('~/matches.txt'), 'w') as f:
for dirpath, dirnames, filenames in os.walk(os.path.expanduser('~/x/y')):
for x in dirnames + filenames:
f.write('{}\n'.format(os.path.join(dirpath, x)))
os.path.expanduser https://docs.python.org/3/library/os.path.html#os.path.expanduser用于替换~
与主目录路径。
替代使用pathlib.Path.rglob https://docs.python.org/3/library/pathlib.html#pathlib.Path.rglob自 Python 3.4 起可用:
import os
import pathlib
matches = list(map(str, pathlib.Path(os.path.expanduser('~/x/y')).rglob('*')))
import os
import pathlib
with open(os.path.expanduser('~/matches.txt'), 'w') as f:
for path in pathlib.Path(os.path.expanduser('~/x/y')).rglob('*'):
f.write('{}\n'.format(path))