Открытие и чтение файла в Python - PullRequest
0 голосов
/ 07 мая 2018

У меня проблемы с открытием и чтением Python для записи файла. Я должен читать значения из файла .txt, чтобы найти максимум, минимум и т. Д. Когда я создаю и размещаю массив внутри кода, например, «values ​​= [1, 5, 77]», он работает нормально. Но когда я пытаюсь открыть файл .txt, который находится на той же карте, что и мой файл .py, я получаю ошибки. Кто-нибудь, помогите мне, пожалуйста!

from statistics import median

max_value = None
min_value = None
avg_value = None
med_value = None

#values = [10, 0, 50, 99, -200, 1313, 7]

#with open("varden.txt") as values:
#   for line in values:
#       print (line)

#values = open("varden.txt", "r")
#   file = values.readlines().split()

with open('varden.txt') as f:
   values = f.readlines().split()

#       max_value = values[0]
            for number in values:
                if number>max_value:
                    max_value = number

#       min_value = values[0]
            for number in values:
                if number<min_value:
                    min_value = number


avg_value = sum(values)/len(values)
med_value = median(values)

values.close()

print ("Maximum value is: ", max_value)
print ("Minimum value is: ", min_value)
print ("Avarage value is: ", avg_value)
print ("Median value is: ", med_value)

Снимок экрана с кодом

Ошибки:

  File "laboration1del2.py", line 21
  for number in values:
                      ^
  TabError: inconsistent use of tabs and spaces in indentation

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Одна проблема, которую я вижу в строке values = f.readlines().split(), когда readlines() возвращает список, и вы применяете split() к списку, который невозможен.

Попробуйте один раз,
values = f.readlines()[0].split('=')[1].strip() // [1, 2, 3, 4, 5, 6]

0 голосов
/ 07 мая 2018

Файл "laboration1del2.py", строка 21 для числа в значениях: ^ TabError: непоследовательное использование табуляции и пробелов в отступе

^ Если это ваша ошибка, то, скорее всего, это относится к вашим циклам, которые кажутся слишком большими с отступом. Python зависит от форматирования, вместо чего-то вроде скобок, для интерпретации кода и определения области видимости.

Играя с вашим размещенным кодом, похоже, что у ваших циклов слишком много отступов, а также у вашей переменной values ​​ есть три пробела, которые кажутся странными. Я видел табуляцию, обычно представленную как 4 пробела или 2 пробела, но никогда не 3.

Попробуйте этот код ниже:

with open('varden.txt') as f:
    values = f.readlines().split()

    for number in values:
        if number>max_value:
            max_value = number


    for number in values:
        if number<min_value:
            min_value = number

РЕДАКТИРОВАТЬ: Вы также объявляете значения в вашем с блоком open () . В результате, я не думаю, что вы сможете получить к нему доступ за пределами того, что вы есть в настоящее время. Когда это доставляет вам неприятности, вы также будете стремиться сделать отступ в этих строках. так что они попадают в область этого с блоком open () , который у вас есть

avg_value = sum(values)/len(values)
med_value = median(values)

values.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...