Python - 列出文件夹中的文件 - 使用变量的路径名
我刚刚接触这个,还是个新手。我在用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