2013-12-07 5 views
0

В настоящее время я пытаюсь извлечь информацию из текстового файла и сохранить его в кортеже. поэтому на данный момент у меня есть в текстовом файле:Python- Создание кортежа из txt-файла

name age height weight 
name age height weight 

и так далее

я хочу, чтобы принять их и хранить их в отдельных кортежах, такие как имя кортеж, возраст кортеж Hight кортеж. но я получаю «ValueError: слишком много значений для распаковки (ожидается 4)»

я знаю, как получить его в списке с кодом я есть сейчас

file1 = open(input (str("Please enter the name of the file you wish to open:")),"r") 
name, age, height, weight = zip(*[l.split() for l in file1.readlines()]) 

нужны помощь спасибо, ребята

им с помощью питона 3,4

ответ

3

Вы можете использовать zip и понимание, как это

text_file = open("Input.txt", "r") 
name, age, height, weight = zip(*[l.split() for l in text_file.readlines()]) 

всегда хорошо использовать with, когда вы имеете дело с файлами

with open("Input.txt", "r") as text_file: 
    name, age, height, weight = zip(*[l.split() for l in text_file.readlines()]) 

Образец Run:

~/Desktop$ python3 Test.py 
Please enter the name of the file you wish to open:Input.txt 
('alex',) ('17',) ('170',) ('6.4',) 
~/Desktop$ 
+0

Параметр '.strip()' является излишним при использовании '.split()' ... –

+0

@JonClements Исправлено это Jon :) – thefourtheye

+0

Можете ли вы объяснить, что делает * в zip? – rgk

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