Печать непосредственно из read () в Python добавляет дополнительную новую строку - PullRequest
1 голос
/ 07 сентября 2011

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

print open(lPath).read()

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

> One
> Two
> 

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

> One
> Two
> 
> 

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

Ответы [ 2 ]

8 голосов
/ 07 сентября 2011

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

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='')
1 голос
/ 07 сентября 2011

Возможно, вам следует написать:

print open(lPath).read(), 

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

Это не позволит print поместить новую строку в конце вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...