2013-07-28 8 views
3

'2.6.5 (R265: 79063, 16 апреля 2010, 13:57:41) \ п [GCC 4.4.3]питон оператор печати печатает строку, несмотря запятой

Я это

#! /usr/bin/env python 

f = open('filetest', 'w') 
f.write("This is a line") 

f.close() 

f = open('filetest', 'r') 


for i in f.readlines(): 
    print i, 

Это печатает о/р, как это:

$ ./filetest.py 
This is a line 
[email protected]:~/pythonpractice$ 

Мне интересно, почему приглашение перейти на новую строку после «Это строка» печатается? Поскольку cat filestest дает это:

$ cat filetest 
This is a [email protected]:~/pythonpractice$ 

ответ

1

ИЛИ вы также можете использовать:

#! /usr/bin/env python 
from __future__ import print_function 

with open('filetest', 'w') as f1: 
    f1.write("This is a line") 

with open('filetest', 'r') as f2: 
    for line in f2.readlines(): 
     print(line, end='') 
+1

Попробовать всегда использовать «с», когда вы работаете с файлами, это чище. –

4

Это стандартное поведение, AFAIK. Вместо этого вы можете использовать sys.output.write, или вы можете установить sys.output.softspace = False, чтобы предотвратить новую строку.

Смотрите эту статью для более подробной информации: http://code.activestate.com/lists/python-list/419182/

1
from __future__ import print_function 

for line in f: 
    print(line, end="") 
Смежные вопросы