read () возвращает неверный файловый дескриптор допустимого файлового дескриптора

Строковый объект

имеет методы rjust и ljust для этой вещи.

>>> n = 10
>>> for i in xrange(1,n+1):
...   print (i*'*').rjust(n)
... 
         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

или, альтернативно:

>>> for i in reversed(xrange(n)):
...   print (i*' ').ljust(n, '*')
... 
         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********
**********

В моем втором примере используется символ пробела в качестве печатаемого символа и * как символ заполнения.

Аргумент ljust или rjust - это ширина терминала. Я часто использую их для разделения разделов с заголовками, когда у вас есть отладочная отладочная распечатка, например. print '--Spam!'.ljust(80, '-').

0
задан Ajith C Narayanan 17 January 2019 в 12:30
поделиться

1 ответ

С man-страницы:

Функция creat () должна вести себя так, как если бы она была реализована следующим образом:

int creat(const char *path, mode_t mode)
{
    return open(path, O_WRONLY|O_CREAT|O_TRUNC, mode);
}

Итак, файл открыт в режиме только для записи, и поэтому вы не можете читать.

Если вам нужно читать и писать, используйте open(...) непосредственно с O_RDWR вместо O_WRONLY.

Указанное вами 0666 просто указывает права доступа к файловой системе, с которой создается файл.

Если вы хотите просто выполнить обычный файловый ввод / вывод, вы также можете использовать высокоуровневые API, такие как fopen .

0
ответ дан ThiefMaster 17 January 2019 в 12:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: