从文件名中提取单词列表

2024-09-28 20:56:27 发布

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

我需要一份文件里的单词列表。以下是文件:

sub-Dzh_task-FmriPictures_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii
sub-Dzh_task-FmriVernike_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii
sub-Dzh_task-FmriWgWords_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii
sub-Dzh_task-RestingState_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii

我需要在任务之后得到它-<;>;,因此我的列表应该如下所示:

['FmriPictures','FmriVernike','FmriWgWords','RestingState']

如何在python3中实现它?你知道吗


Tags: 文件taskmaskspacelanguagedesccomponentbold
3条回答

这里有一个使用Regex的Python解决方案。你知道吗

>>> import re
>>> test_str = 'sub-Dzh_task-FmriPictures_space- 
MNI152NLin2009cAsym_desc-preproc_bold_mask- 
Language_sub01_component_ica_s1_.nii'
>>> re.search('task-(.*?)_', test_str).group(1)
'FmriPictures'

我想你可以对每根弦都这样做。你知道吗

您可以在列表上循环并使用regex从字符串中获取名称,例如:

import re

a = ['sub-Dzh_task-FmriPictures_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii',
 'sub-Dzh_task-FmriVernike_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii',
 'sub-Dzh_task-FmriWgWords_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii',
 'sub-Dzh_task-RestingState_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii']

out = []
for elm in a:
    condition = re.search(r'_task-(.*?)_', elm)
    if bool(condition):
        out.append(condition.group(1))

print(out)

输出:

['FmriPictures', 'FmriVernike', 'FmriWgWords', 'RestingState']
l=["sub-Dzh_task-FmriPictures_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii",
"sub-Dzh_task-FmriVernike_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii",
"sub-Dzh_task-FmriWgWords_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii",
"sub-Dzh_task-RestingState_space-MNI152NLin2009cAsym_desc-preproc_bold_mask-Language_sub01_component_ica_s1_.nii"]

k=[]
for i in l:

    k.append(i.split('-')[2].replace("_space",""))
print(k)

那只是一种方法。你知道吗

相关问题 更多 >