Сборка python fuse fs, в моем генераторе readdir первой строкой кода является оператор print.Это никогда не появлялось на моей консоли.Я изменил его для печати в stderr, так как думал, что это проблема буферизации.По-прежнему нет выхода.
Я добавил ручную очистку к следующей строке - все еще ничего.
Я добавил time.sleep (3) к следующей строке, программа действительно спит.
def readdir(self, path, offset):
print >> sys.stderr, 'Text'
sys.stderr.flush()
time.sleep(3)
Затем я продолжаю заполнять каталог другим кодом (yield fuse.Direntry). Я получаю вывод и могу выполнить команду ls в терминале, чтобы просмотреть содержимое моего смонтированного каталога fuse, но я хочу знать, почемуКоманда print не работает в этом генераторе.
Обновление
Для тех, кто борется:
def readdir(self, path, offset):
print >> sys.stderr, 'Text'
sys.stderr.flush()
for o in os.listdir( "." + path ):
yield fuse.Direntry(o)
Код.Он генерирует список файлов, и я могу перемещаться по нему.Это хорошо.Проблема в том, что я никогда не вижу появления «Текст», нигде в STDOUT, STDERR.
Я просто спрашивал, почему это происходит только в этом генераторе.Я могу поместить печать в другом месте в коде предохранителя и получить вывод очень хорошо.