访问拆分函数后的最后一个字符串以创建新的lis

2024-04-25 21:34:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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],并创建一个新的列表或对这个列表进行变异,但我不知道如何做到这一点。你知道吗

另外,我刚刚公布了代码的第一部分 谢谢您! the oddly sorted partthis one looks better

这就是我希望它看起来的样子,但是排序并且没有eq*文件。 want this sorted


Tags: 文件字符串代码名称类型列表地方this
3条回答

排序函数应用于文件名部分。这不是你想要的。如果我理解的很好,你想排序的文件名列表,而不是文件名的部分。你知道吗

Jean-François给出的代码很好,但我猜您希望自己的代码能够正常工作。你知道吗

您只需要使用分割的最后一部分来提取文件名

拆分返回字符串列表。每一项都是原件的一部分。你知道吗

文件名=文件名.split('/')[长度(文件名.split(“/”)-1]

这条线会给你最后一部分 然后你可以把那部分加到你的名单上 在所有这些之后,你可以整理你的清单

希望这有帮助!你知道吗

所以这起作用了。我刚刚添加了del filename1[:5]以除去其他不必要的字符串部分 导入操作系统,全局 list1=已排序(全球。全球('/FEP\u SYAF014/FEP1/298//.dcd'),键=操作系统路径基名称)你知道吗

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

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

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

相关问题 更多 >