Печать непосредственно из read () в Python добавляет дополнительную новую строку

1

У меня есть скрипт Python, который выводит файл в оболочку:

print open(lPath).read()

Если я передаю путь к файлу со следующим содержимым (без скобок, они просто здесь, поэтому видны новые строки):

> One
> Two
> 

Я получаю следующий вывод:

> One
> Two
> 
> 

Откуда эта новая линия? Я запускаю скрипт с bash на системе Ubuntu.

Теги:
file-io

2 ответа

8
Лучший ответ

использование

print open(lPath).read(),  # notice the comma at the end.

print добавляет новую строку. Если вы закончите оператор print запятой, вместо этого будет добавлено пространство.

Вы можете использовать

import sys
sys.stdout.write(open(lPath).read())

Если вам не нужны какие-либо специальные функции print.

Если вы переключитесь на Python 3 или используете from __future__ import print_function на Python 2. 6+, вы можете использовать end аргумент, чтобы остановить функцию print от добавления новой строки.

print(open(lPath).read(), end='')
  • 0
    Спасибо, я новичок в Python!
1

Может быть, вы должны написать:

print open(lPath).read(), 

(обратите внимание на конечную запятую в конце).

Это предотвратит print с новой строки в конце ее вывода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню