gpt4 book ai didi

Python:解析和分组目录中的文件名

转载 作者:太空宇宙 更新时间:2023-11-04 08:15:53 27 4
gpt4 key购买 nike

我是 python 的新手,但我对 MATLAB 和 C 有很多经验。

我需要做的是解析特定目录中文件的文件名,根据文件名中的字段将它们分成组,并在这些组内执行操作。

具体来说,文件名是:

PROJECT-x-SUBJECT-x-SESSION-x-TYPE.extension

“-x-”已被特意插入作为字段分隔符的位置。我需要对共享相同 PROJECT-x-SUBJECT-x-SESSION 组件的每组文件进行操作。

_______我的最佳尝试如下:/em>________

我可以通过以下方式一次解析每个文件:

dirList=os.listdir(directory)
for fname in dirList:
# kill extension
ext = os.path.splitext(fname)
# get the 4 fields
labels=ext[0].split('-x-')
PROJECT_list.append(labels[0])
SUBJECT_list.append(labels[1])
...

... 这反射(reflect)了我对如何组织这些东西的唯一想法:通过创建 4 个列表并为每个文件名附加到它们。

然后使用我的 4 个(有序?)列表,我可以这样调用:

from collections import Counter
c=Counter(SESSION_list)
list(c)

那么至少我有一个唯一的 SESSION 名称列表

建议?我可以继续,但因为我真的只需要一个起点,所以我认为这就足够了。

谢谢,伙计们。

最佳答案

您可以使用 defaultdict 制作包含列表的字典:

from collections import defaultdict

groups = defaultdict(list)

for filename in os.listdir(directory):
basename, extension = os.path.splitext(filename)
project, subject, session, ftype = basename.split('-x-')

groups[session].append(filename)

现在,groups 包含 session 名称和文件名之间的映射。

关于Python:解析和分组目录中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14719621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com