如何从imaplib.list()返回结果中提取纯净的邮箱文件夹名称
Python imaplib提取IMAP邮箱文件夹名实现方法
完整实现代码
import imaplib with imaplib.IMAP4_SSL("domain@host.com", port=993, timeout=20) as imap: imap.login('user', 'pwd') status, folders = imap.list() folder_names = [] for folder_item in folders: # 字节转字符串,按固定分隔片段拆分 split_res = folder_item.decode().split(' "/" ') # 取最后一段并去除两端多余双引号 pure_name = split_res[-1].strip('"') folder_names.append(pure_name) # 测试打印所有文件夹名 for name in folder_names: print(name)
逻辑说明
imap.list()返回的folders列表中每个元素都是字节格式的标准IMAP文件夹描述,结构固定为(文件夹标记) 层级分隔符 文件夹名称- 先通过
decode()方法把字节值转为普通字符串 - 用公共片段
"/"拆分字符串后,最后一段就是文件夹名的原始值:无空格的名称直接返回,带空格的名称会被双引号包裹 - 调用
strip('"')统一去除两端可能存在的双引号,即可得到纯文件夹名
输出示例
Archive
Calendar
Clutter
Contacts
Conversation History
Deleted Items
Deleted Items/Group - Contact Tracing
Drafts
INBOX
INBOX/Untitled Folder
内容的提问来源于stack exchange,提问作者NO3NO
相关产品推荐
相关产品推荐

