0
當Python文件包含shebang(#!blabla
)時,inspect
模塊的函數getcomments
不返回它。 如何從模塊對象獲取shebang?Python inspect.getcomments(module)不返回第一個註釋如果它是一個shebang
當Python文件包含shebang(#!blabla
)時,inspect
模塊的函數getcomments
不返回它。 如何從模塊對象獲取shebang?Python inspect.getcomments(module)不返回第一個註釋如果它是一個shebang
的家當是,如果它是文件的第一行唯一有效的......所以,好像你可以這樣做:
import module
fname = module.__file__
with open(fname) as fin:
shebang = next(fin)
當然,我已經跳過了一堆微妙之處......(確保第一行實際上是一條評論,確保我們抓取了.py
文件而不是.pyc
文件等)。如果你想讓它更強大,那些檢查和替換應該很容易做到。
而且,我想使用魔法__file__
另一種是使用inspect.getsourcelines
:
shebang = inspect.getsourcelines(module)[0]
if not shebang.startswith('#!'):
pass #Not a shebang :)