Python - 读取文件,保存文件名和访问这些文件

时间:2012-04-12 03:16:39

标签: python

我建立

totalset = {} 

并通过

从文件夹A,B,C,D中提取文件名
for file_name in (os.listdir(full_subdir_name)):
    full_file_name = os.path.join(full_subdir_name, file_name)

现在我想构建一个名为namelist的东西,其中包含所有文件名,我可以通过以下方式遍历文件夹中的所有文件:

for file in namelist[A]:
    blabla...

for file in namelist[B]:
    blabla.. .  

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您应该使用“列表理解”。以下是您可以执行此操作的示例:

lst_names = [os.path.join(full_subdir_name, n) for n in os.listdir(full_subdir_name)]

那么你就可以建立像这样的完整namelist。首先,您应该设置一个名单列表。

# example using Windwows filenames
# note that we use "raw strings" with r'' so the backslash will not be weird
lst_names = [r'C:\Users\steveha\Desktop', r'C:\Users\steveha\Documents', r'C:\Users\steveha\Music']

# example using Mac or Linux filenames
lst_names = ['/home/steveha/Desktop', '/home/steveha/Documents', '/home/steveha/Music'

使用您的姓名设置lst_names后,请构建完整的namelist

namelist = {}

for full_subdir_name in lst_names:
    namelist[full_subdir_name] = [os.path.join(full_subdir_name, n) for n in os.listdir(full_subdir_name)]

就我个人而言,我认为使用比full_subdir_name更短的变量名更容易阅读:

namelist = {}

for f in lst_names:
    namelist[f] = [os.path.join(f, n) for n in os.listdir(f)]