TypeError: 'io.Объект TextIOWrapper не subscriptable

получение ошибки, как говорится в заголовке. Вот след. Я знаю, что lst[x] вызывает эту проблему, но не слишком уверен, как ее решить. Я уже искал google + stackoverflow, но не получил решение, которое я ищу.

Traceback (most recent call last):
File "C:/Users/honte_000/PycharmProjects/Comp Sci/2015/2015/storelocation.py", line 30, in <module>
main()
File "C:/Users/honte_000/PycharmProjects/Comp Sci/2015/2015/storelocation.py", line 28, in main
print(medianStrat(lst))
File "C:/Users/honte_000/PycharmProjects/Comp Sci/2015/2015/storelocation.py", line 24, in medianStrat
return lst[x]
TypeError: '_io.TextIOWrapper' object is not subscriptable

вот собственно код

def medianStrat(lst):
    count = 0
    test = []
    for line in lst:
        test += line.split()
        for i in lst:
            count = count +1
            if count % 2 == 0:
                x = count//2
                y = lst[x]
                z = lst[x-1]
                median = (y + z)/2
                return median
            if count %2 == 1:
                x = (count-1)//2
                return lst[x]     # Where the problem persists

def main():
    lst = open(input("Input file name: "), "r")
    print(medianStrat(lst))

Итак, каким может быть решение этой проблемы или что можно сделать, чтобы код работал? (Основная функция, которую должен выполнять код, - открыть файл и получить median)

1 ответов


вы не можете индекса (__getitem__) a _io.TextIOWrapper "объект". Что вы можете сделать, это работать с list линий. Попробуйте это в своем коде:

lst = open(input("Input file name: "), "r").readlines()

кроме того, вы не закрываете