В строке data=[int(x) if x else None for x in line.replace("\n","").split(",")]
ниже я бы хотел сохранить строковые значения как строковые, а не выдавать исключение, если встречается значение, которое не может быть преобразовано в int. Есть ли изящные способы сделать это? Например, если у вас есть в данной строке 9327,Garlic Powder,104,13
, тогда данные будут [9327, "Garlic Powder", 104, 13]
Rik
file = open(file_path, 'r')
# get headers
try:
header=next(file).replace("\n","").split(",")
except:
raise Exception("The file {} is empty.".format(file.file_path))
count = 0 # to count number of rows
# loop through file and process data
for line in file:
try:
data=[int(x) if x else None for x in line.replace("\n","").split(",")]
except:
raise Exception("The file {} contains invalid data.".format(file.file_path))
count += 1
for f in callback_array:
f(header,data)