拆分功能后访问最后一个字符串以创建新列表



我是Python的初学者,我一直在研究一种代码来访问两种类型的文件(dcd和inp文件(,将它们组合在一起并创建一个具有匹配字符串的新列表。

一开始我被困在某个地方。我想在这里获取所有 dcd 文件。所以他们有.dcd扩展名,但第一部分不一样。所以我在想是否有办法在拆分字符串后访问它们。

#collect all dcd files into a list
list1 = []
for filename1 in glob.glob('*/FEP_SYAF014*/FEP1/298/*/*.dcd'):
filename1 = filename1.split('/')
filename1.sort()    
list1.append(filename1) 

我只想获取带有 dcd 扩展名且已编入索引 [5] 的名称并创建一个新列表或更改此列表,但我不确定该怎么做。

p.s 我刚刚发布了代码的第一部分 谢谢! 奇怪排序的部分 这个看起来更好

这就是我希望它的样子,但已排序且没有 eq* 文件。 想要这个排序

只需将sort与排序键一起使用:os.path.basename(仅提取要执行排序的文件的基本名称(:

import os, glob
list1 = sorted(glob.glob('*/FEP_SYAF014*/FEP1/298/*/*.dcd'), key = os.path.basename)

所以这奏效了。我刚刚添加了 del 文件名1[:5] 以摆脱其他不必要的字符串部分 导入操作系统,全球 list1 = sorted(glob.glob('/FEP_SYAF014/FEP1/298//.dcd'(, key = os.path.basename(

for filename1 in sorted(glob.glob('*/FEP_SYAF014 */FEP1/298/*/*.dcd'),key = os.path.basename):
filename1 = filename1.split('/')
filename1.sort()
list1.append(filename1)
del filename1[:5]
print filename1

排序函数应用于文件名部分。这不是你想要的。如果我理解得很好,您想对文件名列表进行排序,而不是文件名的各个部分。

Jean François给出的代码很棒,但我想你想让自己的代码工作。

您需要仅使用拆分的最后一部分提取文件名

拆分返回字符串列表。每个项目都是原始项目的一部分。

文件名 = 文件名.拆分 ('/'([len (文件名.拆分 ('/'((-1]

这条线将为您提供拆分的最后一部分 然后,您可以将该部分添加到列表中 毕竟,您可以对列表进行排序

希望这有帮助!

相关内容

最新更新