Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
86 / 65 / 4
Регистрация: 03.02.2013
Сообщений: 176
1

Как читать файл построчно?

10.07.2013, 17:48. Показов 4794. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть метод:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def getAnswer(self, question):
    f = self.openFileIfExists(self.storage)
    answer = False
 
    if f:
        for line in f:
            lineArr = line.split('=')
 
            if lineArr[1] == question:
                answer = lineArr[0]
                break
 
        f.close()
 
    return answer
Дебаггер соскакивает на этой строке:
Python
1
for line in f:
и пропускает весь цикл.
Python 3.3.1
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2013, 17:48
Ответы с готовыми решениями:

Как читать файл построчно
Здравствуйте, из названия понятно, что мне требуется прочитать .txt файл построчно. В файле...

Как прочитать файл построчно?
Пришлите код, как можно прочесть одну строку из файла без лишних символов

Как разархивировать из 7z текстовый файл построчно в python?
Есть архив 7z, хотелось бы не просто получить разархивированный файл, а именно получать из него по...

Как считать файл построчно и присвоить 3 в числитель и 4 в знаменатель
Вопрос по питону: У меня есть файл, в нем строки с дробями (3/4, 4/12, ...) Как мне считать файл...

8
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
10.07.2013, 17:54 2
hunker, обычно дебаггер показывает объяснение ошибки. Покажите, пожалуйста, это сообщение. Хотя, возможно, метод self.openFileIfExists возвращает None, в результате чего ошибка. Но возможна и другая ошибка, тут как повезет.
1
86 / 65 / 4
Регистрация: 03.02.2013
Сообщений: 176
10.07.2013, 18:31  [ТС] 3
В том-то и дело, что ошибки не выскакивают. Метод openFileIfExists возвращает или ресурс (или стрим, или дескриптор, не знаю как в питоне это называют) или false. Если бы вернул false, до этой строчки
Python
1
for line in f:
Дело бы не дошло.
Собсно, метод:
Python
1
2
3
4
5
6
7
8
def openFileIfExists(self, fileName):
 
    if os.path.exists(fileName) and os.path.isfile(fileName):
        try:
            f = open(fileName, 'a+', 1, 'UTF-8')
            return f
        except IOError:
            return False
0
99 / 84 / 5
Регистрация: 06.05.2013
Сообщений: 242
10.07.2013, 18:42 4
Покажи остальную часть кода, а то у тебя и нет внятного описания проблемы и есть один только метод.
0
86 / 65 / 4
Регистрация: 03.02.2013
Сообщений: 176
10.07.2013, 18:47  [ТС] 5
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import os
 
 
class Talker:
 
    storage = 'storage.txt'
 
    def talk(self):
        question = input()
 
        if question != 'End':
            self.answer(question)
            self.talk()
        else:
            exit(0)
 
    def answer(self, question):
        answer = self.getAnswer(question)
 
        if answer:
            print(answer)
        else:
            newAnswer = input('Я не знаю ответа: ')
            self.writeToStorage(question + '=' + newAnswer)
 
    def getAnswer(self, question):
        f = self.openFileIfExists(self.storage)
        answer = False
 
        if f:
            for line in f:
                lineArr = line.split('=')
 
                if lineArr[1] == question:
                    answer = lineArr[0]
                    break
 
            f.close()
 
        return answer
 
    def writeToStorage(self, data):
        f = self.openFileIfExists(self.storage)
 
        if f:
            pass
        else:
            f = open(self.storage, 'w')
        f.write(data + '\n')
 
    def openFileIfExists(self, fileName):
 
        if os.path.exists(fileName) and os.path.isfile(fileName):
            try:
                f = open(fileName, 'a+', 1, 'UTF-8')
                return f
            except IOError:
                return False
 
talker = Talker()
talker.talk()
0
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
10.07.2013, 19:22 6
а может файл не текстовый? Может он его на отдельные строки расщепить не может?
0
86 / 65 / 4
Регистрация: 03.02.2013
Сообщений: 176
10.07.2013, 19:49  [ТС] 7
Файл текстовый. Метод writeToStorage без проблем пишет в него.

Добавлено через 13 минут
Хух, въехал. У меня указатель режима работы с файлом стоит a+ (чтение и дозапись). Тоесть файл читать можно, но указатель при открытии ставится в конец файла. Естесно, ни одна строка с файла не читается. Как-то я сразу не додумался...
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.07.2013, 20:25 8
Цитата Сообщение от hunker Посмотреть сообщение
Метод openFileIfExists возвращает или ресурс (или стрим, или дескриптор, не знаю как в питоне это называют) или false.
или None
1
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
11.07.2013, 00:24 9
Посмотрите ещё http://docs.python.org/3.3/tut... utput.html 7.2.1 в конце и http://effbot.org/zone/python-with-statement.htm
1
11.07.2013, 00:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2013, 00:24
Помогаю со студенческими работами здесь

Как читать excel файл в pandas, если столбец содержит ведущие нули
Как читать excel файл в pandas, если столбец содержит ведущие нули. Например excel файл:...

Как, обрабатывая построчно csv файл, сослаться на соответсвующий ему другой столбец, чтобы изменить только его
Пытаюсь написать фильтр, чтобы при нахождении в тексте определённых символов (в примере это "не"),...

Создайте файл data.txt по образцу урока. Напишите программу, которая открывает этот файл на чтение, построчно считывает
Создайте файл data.txt по образцу урока. Напишите программу, которая открывает этот файл на...

Как заставить код читать текстовый файл построчно?
Вот фрагмент txt файла BARCODE|MASS|MASSRATE|PAYMENT|VALUE|INSRRATE|AIRRATE|INDEXTO...

Текстовый файл читать построчно
Помогите новичку! Не могу проделать вроде простую (для других языков) процедуру: Перебрать...

Создать файл (текстовый) средствами редактора. Читать этот файл построчно и упорядочить все цифры по убыванию
Подредактируйте пожалуйста код. Вот задачка: "Создать файл (текстовый) средствами редактора....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru