3. Exchangelib3.2官方文档 —— 访问文件夹

众所周知,各种文件夹都是Account类的属性,例如account.root,account.calendar,account.trash,account.inbox,account.outbox,account.sent,account.junk,account.tasks和account.contacts等。

# 浏览文件夹树、搜索文件夹有多种方法。如果文件夹名称包含斜杠,那么使用通配符查找可能会产生意外结果。

# 在第一次访问文件夹层次结构后,将会缓存整个结构。这意味着在清除缓存之前,外部程序更改文件夹结构将不会显示出来。以下是如何清除各层文件夹结构的缓存:
from exchangelib import Account, Folder

a = Account(...)
a.root.refresh()
a.public_folders_root.refresh()
a.archive_root.refresh()

some_folder = a.root / 'Some Folder'
some_folder.parent
some_folder.parent.parent.parent
some_folder.root  # 返回账户根目录,和Account.root一样
some_folder.children  # 子文件夹生成器
some_folder.absolute  # 以字符串形式返回绝对路径
some_folder.walk()  # 返回当前文件夹的所有子文件夹
# 使用UNIX语法通配符,但大小写不敏感
some_folder.glob('foo*')  # 返回匹配的子文件夹
some_folder.glob('*/foo')  # 返回所有的名为'foo'的子文件夹
some_folder.glob('**/foo')  # 返回所有的名为'foo'的文件夹
some_folder / 'sub_folder' / 'even_deeper' / 'leaf'  # 和pathlib.Path类似,返回路径
# 您也可以在不使用缓存的情况下进入到指定文件夹。这类似于单斜杠语法,但不是从创建文件夹结构缓存开始。如果您的帐户包含大量文件夹,并且您已经知道准确路径,那么这将非常有用。 
some_folder // 'sub_folder' // 'even_deeper' // 'leaf'
some_folder.parts  # 以'Folder'实例返回当前文件夹及父文件夹
# tree() 以字符串形式返回给定路径下的子文件夹结构树
print(a.root.tree())
'''
root
├── inbox
│   └── todos
└── archive
    ├── Last Job
    ├── exchangelib issues
    └── Mom
'''

# Folders对象有很多有用的计数器:
a.inbox.total_count
a.inbox.child_folder_count
a.inbox.unread_count
# 更新计数器
a.inbox.refresh()

# 可以创建、编辑、删除文件夹
f = Folder(parent=a.inbox, name='My New Folder')
f.save()

f.name = 'My New Subfolder'
f.save()
f.delete()

# 清空文件夹
f.empty()
# 清空并删除子文件夹
f.empty(delete_sub_folders=True)
# 递归删除所有的内容及子文件夹. 和`empty(delete_sub_folders=True)`累死,但是可以防止一些文件夹不被删除. 请小心使用!
f.wipe()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值