+ 1 по предложению Игнасио.
однако, чтобы ответить на первую часть вашего вопроса более четко, каждая ОС / система использует свой символ завершения строки:
POSIX (любой Unix-аромат, такой как Linux, * BSD, Mac OS X и т. Д.) Использует \n
(NEWLINE), в то время как
DOS / Win использует комбинацию \r\n
(CR / возврат каретки + NEWLINE), а старая Mac OS 8 или 9 использует только CR или \r
.
, чтобы решить эту проблему, вы можете запустить утилиту, как предложил ignacio, или вы можете сделать это из своего текстового редактора (однако, это может быть неочевидно).
чтобы ответить на другую часть вашего вопроса, причина, по которой $ python myProgram
работает, заключается в том, что Python обрабатывает все три различных конца строки одинаково ... строка shebang в верхней части игнорируется, потому что вы сказали Python, что нужно загрузить и запустить script, а "#
" означает, что первая строка является комментарием и поэтому игнорируется.
когда вы говорите своей ОС-оболочке запустить ее, она должна проанализировать эту строку и выполнить любой интерпретатор, который вы запросили, но если это не удастся, то вы получите то же, что и вы.
надеюсь, это поможет!
пс. в примечании вы можете узнать, какой символ завершения строки используется в вашей операционной системе, просто проверьте атрибут os.linesep
(data). например, на моем Mac (OS X) я получаю это:
>>> import os
>>> os.linesep
'\n'
Вот краткая сводка других связанных атрибутов, которые я плагиат из моих вступительных замечаний по хардкорному Python 1031 *:
