# [Python 3.8 (pre-release)], <strike>245</strike> <strike>237</strike> 247 bytes
*-8 bytes thanks to [Jo King](https://codegolf.stackexchange.com/users/76162/jo-king)*

*+10 bytes because input wasn't handled correctly*

<!-- language-all: lang-python -->

    from sys import*
    i,n,*a=[0]*30002
    exec('\n'.join([((i:=i+(v:=s=='[')-(s==']'))-v)*' '+'while(a[n]): 0 n-=1 n+=1 a[n]+=1 a[n]-=1 a[n]=ord(stdin.read(1)) print(end=chr(a[n]))'.split()[u.index(s)]for s in open(argv[1]).read()if s in(u:='[]<>+-,.')]))

[Python 3.8 (pre-release)]: https://docs.python.org/3.8/
[Try it online!](https://tio.run/##PVDLboQwDLzzFbnZ5hFB91Khpj9CObAQSirWiZKwD1X9dsqW3V481ow9Go27xcny4dX5NdjF91ooYZ1mBMNuifI4Qi7gCpTssrx4EzUCQPJ9HMXjp7eD/kk28v@sn23QSOvo7UmEWxDm5KyPaWJyztNONWWbHsqyfEn0VfcIHwzyyxrGBtHUymR4rlVQChqgAu9LC0TFmVIQkMFlMrPGruGWalEKLlQlONvGnXpi8UBl/YAhDoal192AFZFw3nBEzYPqJ78bEcjgZhORmkUaHvQVA7Wj9WJLz3srnf88N1VLuxGZ8U/Dpd6Ctm/vWZFLoM1qXddnf78 "Python 3.8 (pre-release) – Try It Online")

Compiles `bf` source code to `python` and execs.