Python ヒューズ fs をビルドします。私の readdir ジェネレーターでは、コードの最初の行は print ステートメントです。これは私のコンソールには表示されませんでした。バッファリングの問題だと思ったので、stderrへの出力に変更しました。まだ出力はありません。
次の行に手動フラッシュを追加しましたが、まだ何もありません。
次の行に time.sleep(3) を追加しました。プログラムは確かにスリープします。
def readdir(self, path, offset):
print >> sys.stderr, 'Text'
sys.stderr.flush()
time.sleep(3)
次に、ディレクトリに他のコードを入力します (fuse.Direntry を生成します) 出力を取得し、ターミナルで ls を実行して、マウントされたヒューズ ディレクトリの内容を確認できますが、なぜ print コマンドが実行されないのか知りたいのです。この 1 つのジェネレーターでは機能しません。
アップデート
苦労している人のために:
def readdir(self, path, offset):
print >> sys.stderr, 'Text'
sys.stderr.flush()
for o in os.listdir( "." + path ):
yield fuse.Direntry(o)
コードです。ファイル リストが生成され、その中を移動できます。それは結構です。問題は、STDOUT、STDERR、どこにも「テキスト」が表示されないことです。
なぜこれがこのジェネレーターでのみ発生するのかを単純に尋ねていました。ヒューズコードの他の場所に印刷を配置して、非常にうまく出力を得ることができます。