2015-12-02 6 views
-4

Новое на Python. Используя этот кодPython печать только в первой строке

#!/usr/bin/env python2 
with open('/tmp/cadrootcomp1.firstwords',mode="rb") as f: 
    print '/'.join(f.read().split('/')[:2]) + '/' 

Получить выход: а/Защита/

когда оригинальная линия были а/Def/ГХИ

Так это работает отлично. Нужно, чтобы этот скрипт выполнялся на других строках в файле. Он обрабатывает только первую строку.

+0

Вам необходимо использовать петлю для чтения всех строк. 'f.read()' читает по одной строке за раз –

+0

Новый для python. Можете ли вы показать, как работает этот цикл? – Glad

ответ

0

Вы ищете что-то вроде этого:

#!/usr/bin/env python2 
with open('/tmp/cadrootcomp1.firstwords',mode="rb") as f: 
    for line in f: 
     print '/'.join(line.split('/')[:2]) + '/' 
+0

Работы. Спасибо! – Glad

1

Не уверен, что я правильно понял, что вы пытаетесь сделать. Если вы пытаетесь перебрать строки в файле, попробуйте это.

 
with open('/tmp/cadrootcomp1.firstwords',mode="rb") as lines: 
    for line in lines: 
     print '/'.join(line.split('/')[:2]) + '/' 
+0

Работы. Спасибо! – Glad

1

Я думаю, что ниже один лучше. Я думаю, вы используете нарезку для удаления \n после file.read(). Лучший способ сделать это состоит в использовании strip() так:

f.read().strip() 

Вам не нужно даже, что при чтении построчно.

with open('/tmp/cadrootcomp1.firstwords',mode="rb") as f: 
for line in f: 
    print line.rsplit('/',1)[0] + '/'