#python #csv
#python #csv
Вопрос:
Я пытаюсь создать программу, которая позволяет пользователю вводить 5-значный номер продукта, и программа будет искать включенный csv-файл по этому номеру, пока не найдет его, после чего он напечатает соответствующее название и цену, но не номер. Чтобы добраться до этого момента, я решил создать список с каждой строкой из файла в нем, а затем распечатать их для устранения неполадок, ни у кого из них не было проблем с индивидуальной печатью своих списков, но когда я попытался напечатать все 5 сразу, он напечатал первый список, а затем показал 4 пустых скобки для остальных. Помощник вообще не показывает ошибок, и я не уверен, как это исправить.
import csv
f = open('products.csv')
csv_f = csv.reader(f)
next(f)
pNumber = []
pName = []
pDescription = []
pCategory = []
pPrice = []
for row in csv_f:
pNumber.append(row[0])
for row in csv_f:
pName.append(row[1])
for row in csv_f:
pDescription.append(row[2])
for row in csv_f:
pCategory.append(row[3])
for row in csv_f:
pPrice.append(row[4])
print(pNumber)
print(pName)
print(pDescription)
print(pCategory)
print(pPrice)
CSV-файл products выглядит следующим образом
Product #,Name,Description,Category,Price
38500,Backpacking Tent,"2-Person Backpacking Tent - 20D Ripstop Nylon",Outdoor,205.99
27840,Sit-Stand Desk,"Sit-Stand Compact Workstation Desk Converter, 37in",Household,139.99
37992,Mouse,"Dark Matter by Monoprice Rover Optical Gaming Mouse - 6200DPI",Office,19.99
24458,Subwoofer,"15in THX Ultra Certified 1000 Watt Powered Subwoofer",Audio,1280.07
38323,USB Cable,"USB 2.0 Type-C to Type-A Charge amp; Sync Kevlar-Reinforced Nylon-Braid Cable, 6ft, purple",Office,7.55
Ответ №1:
Ваши 2-5-е списки пусты, потому что первый цикл считывает все данные в файле; читать больше нечего. Если вы хотите снова выполнить итерацию по всему файлу, вам необходимо сбросить положение курсора в объекте file.
f.seek(0)
часто это самый простой способ сделать это.
А еще лучше, храните все свои поля данных в одном цикле, а не считывайте весь файл для одного столбца за раз.
Еще лучше, просто прочитайте файл прямо во фрейм данных.
Комментарии:
1. как мне прочитать файл прямо во фрейм данных?
2. Вы должны обратиться к существующей документации PANDAS или просто выполнить поиск ответа в своем браузере.