pythonのコマンドラインオプションのリストからは、このオプションがないようです(IOがtoo effectiveでないように見えるようにサンドボックスする)。あなたはダウンサイドは、あなたがif文でなどを読んで、すべてのオープンをラップする必要がある
import argparse
class blockIOError(Exception):
pass
parser = argparse.ArgumentParser(description='Block IO operations')
parser.add_argument('-bIO','-blockIO',
action='store_true',
help='Flag to prevent input/output (default: False)')
args = parser.parse_args()
blockIO = args.bIO
if not blockIO:
with open('filename.txt') as f:
print(f.read())
else:
raise blockIOError("Error -- input/output not allowed")
例えば
、独自のコマンド引数は、この機能を得るために作ることができます。利点は、あなたが許可したいものを正確に指定できることです。出力は次のようになります。
$ python 36477901.py -bIO
Traceback (most recent call last):
File "36477901.py", line 19, in <module>
raise blockIOError("Error -- input/output not allowed")
__main__.blockIOError: Error -- input/output not allowed
いいえ、このような魔法の引数はありません。基本的に、Pythonはライブラリをロードするためにファイルにアクセスする必要があります。ドッカーまたは同様のソリューションでスクリプトをサンドボックス化するとよいでしょう。 @KlausD。 –
ありがとうございます –
あなたはどのオペレーティングシステムを実行していますか? unixとosxにはchrootがあります。これにより、非常に限られた(空の)ファイルシステムでプログラムを実行させることができます。 –