Python - 列出文件夹中的文件 - 使用变量的路径名

2 投票
2 回答
9885 浏览
提问于 2025-04-16 12:13

我刚刚接触这个,还是个新手。我在用Python,想要列出几个不同文件夹里的文件(我用的是Windows)。

在我第一次尝试的时候,我用了很多路径变量。每个路径都有自己的变量。虽然这样能工作,但我觉得这样太繁琐了。因为这些路径除了文件夹名字不一样,其他都是一样的,所以我尝试了这个:

import os

folder = ["folderA", "folderB", "folderC", "folderD"]
path1 = input('//server/files/"%s"/data' % (folder))

def list_sp_files():
    for filename in os.listdir(path1):
        print path1, filename

print "reporter"
list_sp_files()

我明白为什么这样不行,但我不太明白该怎么才能让它工作。

2 个回答

1

试着把你的 path1 改成类似这样的:

path1 = ["//server/files/%s/data" % f for f in folder]

然后把 list_sp_files() 改成类似这样的:

def list_sp_files(path_list):
    for path in path_list:
        for filename in os.listdir(path):
            print path, filename

接着通过下面的方式调用它:

list_sp_files(path1)

简单来说,这个答案把 path1 变成了一个字符串列表,使用了生成器表达式。它通过遍历 folder 列表中的每个项目,生成一个新的路径,比如 "//server/files/%s/data" % f

修改后的 list_sp_files() 只是简单地遍历传给它的路径列表,然后打印出 os.listdir() 返回的所有内容。

4

也许可以这样做?

folders = ["folderA", "folderB", "folderC", "folderD"]
def list_sp_files():
    for folder in folders:
        path = '//server/files/%s/data' % (folder)
        for filename in os.listdir(path):
            print path, filename

撰写回答