简单的列表理解

发布于 2024-09-10 22:34:33 字数 283 浏览 1 评论 0原文

我想要一个文件字典:

files = [files for (subdir, dirs, files) in os.walk(rootdir)]

但是

files = [['filename1', 'filename2']] 

当我想要时

files = ['filename1', 'filename2']

我得到了如何防止循环遍历该元组?谢谢!

I want a dictionary of files:

files = [files for (subdir, dirs, files) in os.walk(rootdir)]

But I get,

files = [['filename1', 'filename2']] 

when I want

files = ['filename1', 'filename2']

How do I prevent looping through that tuple? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

尹雨沫 2024-09-17 22:34:33

这两者都有效:

[f for (subdir, dirs, files) in os.walk(rootdir) for f in files]

sum([files for (subdir, dirs, files) in os.walk(rootdir)], [])

示例输出:

$ 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']

Both of these work:

[f for (subdir, dirs, files) in os.walk(rootdir) for f in files]

sum([files for (subdir, dirs, files) in os.walk(rootdir)], [])

Sample output:

$ 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']
沫离伤花 2024-09-17 22:34:33
for (subdir, dirs, f) in os.walk(rootdir): files.extend(f)
for (subdir, dirs, f) in os.walk(rootdir): files.extend(f)
殊姿 2024-09-17 22:34:33
files = [filename for (subdir, dirs, files) in os.walk(rootdir) for filename in files]
files = [filename for (subdir, dirs, files) in os.walk(rootdir) for filename in files]
笑,眼淚并存 2024-09-17 22:34:33
import os, glob

files = [file for file in glob.glob('*') if os.path.isfile(file)]

如果你的文件有扩展名,那就更简单了:

import glob
files = glob.glob('*.*')
import os, glob

files = [file for file in glob.glob('*') if os.path.isfile(file)]

if your files have extensions, then even simpler:

import glob
files = glob.glob('*.*')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文