下面是循环所有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
答案 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'