Python:如果文件名为" foobar"则引发异常。被打开

时间:2018-04-27 10:59:39

标签: python debugging

我之前有一个巨大的代码库,我有一个名字" foobar"得到了。

我不清楚这个文件的读取位置。

我的想法如何解决这个问题:

  1. 做猴子补丁或嘲笑。如果打开具有此名称的文件,则会引发异常。
  2. 运行所有测试并查看引发异常的位置。
  3. 如果具有给定名称的文件被打开,如何让解释器引发异常?

    我确信我搜索的地方是纯python,而不是c-extension。

    我使用Python 2.7

1 个答案:

答案 0 :(得分:16)

你可以覆盖(shadow)内置的open函数。在主模块中添加:

import __builtin__

open_file = __builtin__.open

def fake_open(filename, *args, **kwargs):
    if filename == 'foobar':
        raise Exception('foobar filename')
    else:
        return open_file(filename, *args, **kwargs)

__builtin__.open = fake_open