con*_*use 4 python directory list python-2.7
假设我们有一个目录列表,其中某些目录可能不存在:
dirs = ['dir1','dir2','dir3']
Run Code Online (Sandbox Code Playgroud)
为了论证,仅存在两个,它们的内容是:
目录1 --file1a --file1b 目录2 --file2a --file2b
统一列出所有文件的最佳方式是什么?我最接近的是:
import os
files = [ os.listdir(x) for x in ['dir1','dir','dir3'] if os.path.isdir(x) ]
Run Code Online (Sandbox Code Playgroud)
但这给了我一个嵌套列表:
[['file1a','file1b'],['file2a','file2b']]
Run Code Online (Sandbox Code Playgroud)
如果我希望使用那种单线纸['file1a', 'file1b', 'file2a', 'file2b']呢?
您可以将项目链接到一个列表中:
from itertools import chain as ch
files = list(ch.from_iterable(os.listdir(x) for x in ['dir1', 'dir', 'dir3'] if os.path.isdir(x)))
Run Code Online (Sandbox Code Playgroud)
我能做到的最短:
from itertools import chain as ch, ifilter as ifil, imap
from os import path, listdir
files = list(ch.from_iterable(imap(listdir, ifil(path.isdir, ('dir1', 'dir', 'dir3')))))
Run Code Online (Sandbox Code Playgroud)
如果只想使用名称,则只需遍历链对象即可。
| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |