2014-10-21 2 views
0

Я создал следующий текстовый файл:Чтение текстового файла в питоне линии мудрого

fo = open("foo.txt", "wb") 
fo.write("begin \n") 
fo.write("end \n") 
fo.write("if \n") 
fo.write("then \n") 
fo.write("else \n") 
fo.write("identifier \n") 


input = raw_input("Enter the expression : ") 
print input 
fo = open("foo.txt" , "rt") 
str = fo.read(10) 
print "Read string is : ", str 
fo.close() 

Что я должен делать, чтобы прочитать текстовый файл строки мудра ?? Я попытался fo.read() и fo.readlines(), но я не получаю ожидаемый результат !!!

+2

И каков ваш выход? – Elric

+0

Посмотрите на этот раздел учебника в документах Python - [Чтение и запись файлов] (https://docs.python.org/2.7/tutorial/inputoutput.html#reading-and-writing-files) – wwii

+0

i получил то, что я искал, используя linecache.getline ('Filename.txt', Line_number) –

ответ

1

Это работает, но вы не использовали его в правильном направлении:

for line in fo.readlines(): 
    print line 
+3

Или даже '' 'для строки в fo:' '' – wwii

+0

Я получил то, что искал, используя linecache.getline ('Filename.txt ', Line_number) –

0

Вы открываете файл для записи, но не закрывая его, прежде чем пытаться читать из него. Вы должны добавить fo.close() до fo.read

также, read(10) считывает 10 байт данных из файла, и wb означает your'e записи двоичных данных. Я не уверен, что это то, что вам нужно ...

+0

Не говоря уже о теневом 'input' и' str' ... Но ни одна из этих ошибок не мешает программе делать то, что было сказано. :) –

+0

Что я должен делать, чтобы сохранить 1-ю строку в одной переменной, вторую строку в другой переменной и так далее ... –

+0

@WeaselFox: запись fo.close() до fo.read() обычно не работает. –

0

Для начала вы открываете файл в неправильном режиме (вместо текстового текста обратите внимание на открытые аргументы ниже). Вам нужно использовать метод readlines для повторения по строкам файла.

#Using a context manager to open the file in write text mode 
with open("foo.txt", "w") as fo: 
    fo.write("begin \n") 
    #write other lines... 
    ... 

input = raw_input("Enter the expression : ") 
print input 
#Open in read text mode 
with open("foo.txt" , "r") as fi: 
    for line in fi.readlines(): 
     print "Read string is : ", str 
+0

Каждая строка содержит одну строку. Как я могу хранить каждую строку в другой varibale? –

Смежные вопросы