如何在for循环中从Word文档的文件名中提取特定名称(在python中)?

时间:2018-10-08 14:14:16

标签: python filenames extraction

下面是循环所有Word文档文件的for循环。如下所示,我已经打印了文件名以查看其输出。

->get();

下面是打印文件名后的输出:

for filename in os.listdir(root_dir):
            source_directory = root_dir + '/' + filename
            # The output of filename is shown in the next section.
           -> print(filename)
            arr = mynotes_extractor.get_mynotes(source_directory)
            list2str = str(arr)
            c = cleanString(newstring=list2str)
            new_arr = []
            new_arr += [c]
            text_file = open(output, 'a', encoding='utf-8')
            for item in new_arr:
                text_file.write("%s\n" % item)

我只想提取特定的名称,即for循环内word文档的所有文件名中的“ My Notes”。

12345_Cat_A_My Notes.docx
6789_Cat_B_My Notes.docx
54321_Cat_A_My Notes.docx
12234_Cat_C_My Notes.docx
86075_Cat_D_My Notes.docx
34324_Cat_E_My Notes.docx

1 个答案:

答案 0 :(得分:2)

一字不漏,但是刚开始时可能会造成混淆。

filename.split('.')[0].split('_')[-1]

输出:'My Notes'

以下详细说明:

filename = '12345_Cat_A_My Notes.docx'

.split('.')在每个周期分割字符串

>>>['12345_Cat_A_My Notes', 'docx']

[0]占据列表的第一个元素

>>>'12345_Cat_A_My Notes'

.split('_')在返回的每个下划线处拆分此字符串

>>>['12345', 'Cat', 'A', 'My Notes']

[-1]最后,返回列表中的最后一项

>>>'My Notes'