を:
GTIN PRODUCT PP CSL TSL RSL
12345670 cupcakes 1.50 50 50 25
98765432 cakes 1.00 50 50 25
12121212 toffees 0.50 50 50 25
09090909 cement 1.00 50 50 25
56565656 phones 3.00 50 50 25
12321323 craters 2.00 50 50 25
最初の事は私の心に来るあなたのINPUT_FILEをラップすることですdictへ
だから、ここにあなたの質問に対する私の答えです:
def format_input(input_file = ""):
data, id_dict = {}, 1
aa = list(j for i in tuple(open(input_file, 'r')) for j in i.split(" ") if j != "")
for i in range (6, len(aa), 6): # range from the 6th pisition with step = 6
if i + 5 <= len(aa):
data[id_dict] = {
aa[0]: aa[i],
aa[1]: aa[i+1],
aa[2]: aa[i+2],
aa[3]: aa[i+3],
aa[4]: aa[i+4],
aa[5].replace("\n", ""): aa[i+5].replace("\n", "")
}
id_dict +=1
else:
break # If something goes wrong
return data
は出力:今すぐ
print(format_input("input_file"))
{
1:
{
'PP': '1.50',
'RSL': '25',
'PRODUCT': 'cupcakes',
'TSL': '50',
'CSL': '50',
'GTIN': '12345670'
},
2:
{
'PP': '1.00',
'RSL': '25',
'PRODUCT': 'cakes',
'TSL': '50',
'CSL': '50',
'GTIN': '98765432'
},
3:
{
'PP': '0.50',
'RSL': '25',
'PRODUCT': 'toffees',
'TSL': '50',
'CSL': '50',
'GTIN': '12121212'
},
4:
{
'PP': '1.00',
'RSL': '25',
'PRODUCT': 'cement',
'TSL': '50',
'CSL': '50',
'GTIN': '09090909'
},
5:
{
'PP': '3.00',
'RSL': '25',
'PRODUCT': 'phones',
'TSL': '50',
'CSL': '50',
'GTIN': '56565656'
},
6:
{
'PP': '2.00',
'RSL': '25',
'PRODUCT': 'craters',
'TSL': '50',
'CSL': '50',
'GTIN': '12321323'
}
}
、あなたのデータにアクセスしたい場合、あなたは次のように行うことができますこの例:
data = format_input("input_file")
for i in data:
print("GTIN: {0} | PRODUCT: {1} | PP: {2} | CSL: {3} | TSL: {4} | RSL: {5}".format(
data[i]["GTIN"], data[i]["PRODUCT"], data[i]["PP"], data[i]["CSL"], data[i]["TSL"], data[i]["RSL"]))
出力:
GTIN: 12345670 | PRODUCT: cupcakes | PP: 1.50 | CSL: 50 | TSL: 50 | RSL: 25
GTIN: 98765432 | PRODUCT: cakes | PP: 1.00 | CSL: 50 | TSL: 50 | RSL: 25
GTIN: 12121212 | PRODUCT: toffees | PP: 0.50 | CSL: 50 | TSL: 50 | RSL: 25
GTIN: 09090909 | PRODUCT: cement | PP: 1.00 | CSL: 50 | TSL: 50 | RSL: 25
GTIN: 56565656 | PRODUCT: phones | PP: 3.00 | CSL: 50 | TSL: 50 | RSL: 25
GTIN: 12321323 | PRODUCT: craters | PP: 2.00 | CSL: 50 | TSL: 50 | RSL: 25
PS:長い答えを申し訳ありません。そしておそらく私の答えis'ntは最高のものですが、それはあなたを助けるかもしれません。
'print()'は何も返しません。したがって変数 'reciept'は' nul'値に等しくなります。 –