2016-03-14 3 views
-2

Как я могу получить значение с несколькими строками из файла? Например, . У меня есть файл, содержащий это:Python: Как получить несколько строк в файле?

Anna#18#Goodmorning! 
How are you? 

Что мне делать, чтобы получить этот результат?

Goodmorning! 
How are you? 

Я пробовал использовать .splitlines и раскалывать «#», но он, похоже, не работает. Это то, что я до сих пор.

newmsg="" 
fob = open("sample.txt" , "r") 
lines = fob.readlines() 
for line in lines: 
    msg= line.splitlines() 
    newmsg += str(msg) 
print newmsg 
fob.close() 

Это то, что он показывает:

['Anna#18#Goodmorning!']['How are you?'] 

Что мне нужно это:

Goodmorning! 
How are you? 
+0

* но это не работает *: как насчет того, чтобы вы делились своим кодом и показывали нам результат, который вы получаете. Затем мы можем помочь вам решить проблемы с этим. –

+0

Добро пожаловать в StackOverflow! Не могли бы вы разместить свой код? Трудно сказать, почему он не работает без [MCVE] (http://stackoverflow.com/help/mcve). –

+0

@MartijnPieters опубликовал мой код. Это то, что у меня есть до сих пор. – eshi

ответ

0

С для петли вы можете перемещаться по линиям, а затем вы можете разделить каждую строку на # , С помощью " ".join(msg) вы можете объединить элементы массива в строку, разделенную пробелом.

newmsg="" 
fob = open("sample.txt" , "r") 
for line in fob: 
    msg = line.split("#") 
    msg = msg[-1:] 
    newmsg += " ".join(msg) 
print (newmsg) 
fob.close() 
1

Разделение «#» - это то, что вы хотите, но вы должны это делать по строкам. Поскольку открытый файл уже является итератором, я использовал его непосредственно в цикле for. И так как у меня уже есть линия в цикле, я не пытаюсь снова splitlines.

newmsg="" 
with open("sample.txt" , "r") as fob: 
    for line in fob: 
     msg= line.split('#')[-1] 
     newmsg += msg 
print newmsg 
Смежные вопросы