【发布时间】:2021-01-01 18:40:14
【问题描述】:
我想写一个将文件名作为输入的方法,然后检查文件是否被压缩(gzip、xz/LZMA、无),然后检查文件的内容是否是腌制的python 对象或 JSON 编码的字典。这里的目标是为用户在存储/编码数据的方式上提供一定程度的灵活性,这最终只是一堆字符串......
构建这段代码最明智的方式是什么?我只是try 用每个支持的(解)压缩器打开文件,还是有更好的方法来确定文件类型并调用相应的open 方法?
内部数据的类似问题...除了实际尝试 json.load() 或 pickle.load() 并捕获异常之外,是否有一些更优雅/高效/可维护的方法来做到这一点?
我知道我可以将足够多的 if-then-else 或 try-except 逻辑组合在一起以使其工作,但我对此还不够新,我想至少征求意见,了解可能导致最有意义。我想在某种意义上我是在问哲学是否应该是
- “探测一些东西以找出文件实际上是什么,然后根据该答案调用打开/加载”
- 相对于 ...
- “循环,尝试所有你知道如何处理的事情,最终使用不会引发异常的事情”
【问题讨论】:
标签: python json compression pickle