atp*_*atp 3 python list-comprehension
我想要一个文件字典:
files = [files for (subdir, dirs, files) in os.walk(rootdir)]
Run Code Online (Sandbox Code Playgroud)
但我知道,
files = [['filename1', 'filename2']]
Run Code Online (Sandbox Code Playgroud)
当我想要的时候
files = ['filename1', 'filename2']
Run Code Online (Sandbox Code Playgroud)
如何防止循环通过该元组?谢谢!
这两项工作:
[f for (subdir, dirs, files) in os.walk(rootdir) for f in files]
sum([files for (subdir, dirs, files) in os.walk(rootdir)], [])
Run Code Online (Sandbox Code Playgroud)
样本输出:
$ find /tmp/test
/tmp/test
/tmp/test/subdir1
/tmp/test/subdir1/file1
/tmp/test/subdir2
/tmp/test/subdir2/file2
$ python
>>> import os
>>> rootdir = "/tmp/test"
>>> [f for (subdir, dirs, files) in os.walk(rootdir) for f in files]
['file1', 'file2']
>>> sum([files for (subdir, dirs, files) in os.walk(rootdir)], [])
['file1', 'file2']
Run Code Online (Sandbox Code Playgroud)