Ошибка сценария чтения файла Python - PullRequest
0 голосов
/ 31 июля 2011

Что не так с этим скриптом Python:

RoomNumber = input("Enter the room number:")

text_file = open('roombookings.txt', 'r')
for line in text_file:
    (s['Date'], s['Room'], s['Course'], s['Stage']) = line.split(";")
    if RoomNumder == (s['Room']):
        print("Date: " + s['Date'])
        print("Room: " + s['Room'])
        print("Course: " + s['Course'])
        print("Stage: " + s['Stage'])
        text_file.close()

input("\n\nPress enter key to exit.")

Я пытаюсь получить дату, курс и этап в качестве выходных данных при вводе номера комнаты, но что-то не так.Когда я запускаю скрипт на

"(s ['Date'], s ['Room'], s ['Course'], s ['Stage']) = line.split (";") "

Я получаю 'ошибка значения: для распаковки нужно более 1 значения'.Я не знаю, что это значит.

Ответы [ 2 ]

3 голосов
/ 31 июля 2011
(s['Date'], s['Room'], s['Course'], s['Stage']) = line.split(";")

Я получаю сообщение об ошибке: требуется более 1 значения для распаковки. Я не знаю что это значит.

Это означает, что он пытается найти четыре значения, назначить их четырем клавишам, перечисленным слева, но массив, созданный line.split(";"), содержит только одно. Рассматриваемая строка не должна содержать точку с запятой; оно может быть пустым.

1 голос
/ 31 июля 2011

Ошибка, связанная с unpack , довольно часто встречается в python и говорит вам, что невозможно выполнить все запрошенные назначения, т.е.

a,      = 1, 2  # ValueError: 'too many values to unpack'
a, b, c = 1,    # ValueError: 'need more than 1 value to unpack'
a, b, c = 1, 2  # ValueError: 'need more than 2 values to unpack'

Как сказал Джереми Бэнкс, похоже, что одна из ваших строк не содержит точку с запятой (поэтому разделение не было выполнено, и у вас есть только одно значение в правой части назначения). Вам нужна какая-то проверка ввода.

...