如何使python忽略-tt选项

时间:2015-10-01 11:40:22

标签: python

首先,我想为即使尝试这样做而道歉。我知道不建议以任何方式。然而,外部约束让我别无选择,只能走这条路。

我有一段位于只读文件系统上的python代码。我无法移动它。我不能修改它。它使用制表符和空格不一致。我需要使用-tt选项导入此代码。

有没有办法忽略特定-tt语句,特定代码部分或某个应用程序的import选项?

1 个答案:

答案 0 :(得分:1)

我完全承认这是一个可怕的,可怕的解决方案。我在等待downvotes:

dodgymodule.py:

def somefunc():
        print("This is indented using 4 spaces")
        print("This is indented using a tab")

主python脚本,它使用autopep8来修复代码并导入生成的字符串:

import autopep8
import imp

try:
    import dodgymodule
except TabError as e:
    with open(e.filename, 'r') as f:
        new_module_contents = autopep8.fix_code(f.read())
        dodgymodule = imp.new_module('dodgymodule')
        exec(new_module_contents, dodgymodule.__dict__)

dodgymodule.somefunc()

python3 -tt script.py按照希望打印出这些线条。