python - 如何在 Python 中创建目录中的文件列表

标签 python

<分区>

我有一堆文件要整理。

我正在尝试获取目录中仅文件(或仅文件夹)的名称列表。

path = 'C:\\test\\'
items = os.listdir(path) #this gives me a list of both files and folders in dir

for name in items:
    if os.path.isfile(path + '\\' + name) == True:
        items.remove(name)

我预计 items 将包含文件夹的名称。但它也有一半的文件名。

但是,如果我使用 print(name) 而不是 items.remove(name),它会正确打印。

最佳答案

我怀疑这是因为您在迭代时更改了“项目”列表。这样做从来都不是一个好主意。这可能会导致某些元素被跳过。这就是为什么没有删除所有文件的原因。代替 for 循环,做这样的事情

items = [item for item in items if isfile(join(path, item))]

join函数在os.path中。你应该使用它而不是自己添加反斜杠。

关于python - 如何在 Python 中创建目录中的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38175390/

相关文章:

python - Django-Filer 规范 URL 无法正常工作(找不到页面)

python - Pandas 有效地映射字典中的值

python - 使用 HttpLib 的 HTTP 获取请求 "Moved Permanently"

python - 在 Pika 中获取队列大小(AMQP Python)

python - 如何打印不带括号的元组元组

python - pygame.mixer.music,我想在 while 循环运行时播放轨道

python - 模拟交互式 python session

python - Python-OpenCv FindContours

python - 合并 Pandas 数据框列表

python - 超过两个参数的 Numpy `logical_or`