如何将分隔的CSV文件加载到Python中?

时间:2017-07-13 21:41:52

标签: python

  1. 我能够将文件作为列表加载,如下所示。
  2. [ABC,1; 2; 3] [DEF,4; 5; 6]

    1. 但是,我需要格式化如下所示。

      [ABC,1]     [ABC,2]     [ABC,3]     [DEF,4] 等。

    2. 以下是我用来加载文件的代码:

      import csv
      
      f = open('Sample.csv')
      csv_f = csv.reader(f)
      
      for row in csv_f:
          print(row)
      

      这是输出:

      ['Description', 'Article #']
      ['Build a Better Breakfast: Buy 2 save $2 on fruit/nuts/Milk - Kids M / Raisin Bran, RK M , Mini Wheat M PLUS Pop Tarts 12 ct.', '62758;65926;855924;856013;856179;553818;28107;29601;65928;51415;745406;414680;872002;29599;25717;25719;29608;62773;700401;746727;746743;746701;705400;817833']
      ['Community Coffee 12oz Ground Roast Coffee', '1027151;1027153;1059063;1170982;1170983;1170984;1170986;1170987;1170988;1170989;1182424;1216634;1216667;1225228;1228111;1245664;1245666;1248330;1249099;1249100;1308483;1330732;1330744;1336906']
      ["Keurig Green Mountain Core 12CT - Flavors Include:  Columbian, Breakfast Blend, Hazelnut, Dark Magic Extra Bold, Newman's Own Blnd, French Vanilla, Caribou Blnd, Nantucket, Caramel Vanilla Crm, Dark Magic Decaf, Half Caff, Tully's French Rst, Tully's Hawaiin Bln - Dc'd, Breakfast Decaf, Pumpkin Spice, Cinnamon Roll Cinnabon, Donut Shop Decaf, Donust Shop, French Vanilla Decaf,  Krispy Cream 9 New), Coconut Mocha (New), Donut Shop Dark (New)", '15136;15137;15166;15167;15168;22392;22664;22784;31015;31017;31020;40948;40980;41238;48742;48754;48756;48777;99555;08300;99555;08588;99555;086577']
      ['Starbucks K-Cups 10ct & 12oz R&G Coffee', '50794;50796;26470;26475;26479;30067;30082;41007;41008;41022;41196;50795;49424;49421;7700;30070;49414;49416;149195;149237;161588;373787;373886;373902;374264;374298;431858']
      

1 个答案:

答案 0 :(得分:0)

从你最初的问题来看,我认为这是你正在寻找的输出(尽管,类别开始" Keurig Green Mountain ......"让我不确定)。 CSV阅读器在,分隔符上正确分隔,但是您需要一个嵌套的for循环来保持ABC持久对照基于;的文章编号的二次分割分隔符。

csv_reader_output = [['Description', 'Article #'],
['Build a Better Breakfast: Buy 2 save $2 on fruit/nuts/Milk - Kids M / Raisin Bran, RK M , Mini Wheat M PLUS Pop Tarts 12 ct.', '62758;65926;855924;856013;856179;553818;28107;29601;65928;51415;745406;414680;872002;29599;25717;25719;29608;62773;700401;746727;746743;746701;705400;817833'],
['Community Coffee 12oz Ground Roast Coffee', '1027151;1027153;1059063;1170982;1170983;1170984;1170986;1170987;1170988;1170989;1182424;1216634;1216667;1225228;1228111;1245664;1245666;1248330;1249099;1249100;1308483;1330732;1330744;1336906'],
["Keurig Green Mountain Core 12CT - Flavors Include:  Columbian, Breakfast Blend, Hazelnut, Dark Magic Extra Bold, Newman's Own Blnd, French Vanilla, Caribou Blnd, Nantucket, Caramel Vanilla Crm, Dark Magic Decaf, Half Caff, Tully's French Rst, Tully's Hawaiin Bln - Dc'd, Breakfast Decaf, Pumpkin Spice, Cinnamon Roll Cinnabon, Donut Shop Decaf, Donust Shop, French Vanilla Decaf,  Krispy Cream 9 New), Coconut Mocha (New), Donut Shop Dark (New)", '15136;15137;15166;15167;15168;22392;22664;22784;31015;31017;31020;40948;40980;41238;48742;48754;48756;48777;99555;08300;99555;08588;99555;086577'],
['Starbucks K-Cups 10ct & 12oz R&G Coffee', '50794;50796;26470;26475;26479;30067;30082;41007;41008;41022;41196;50795;49424;49421;7700;30070;49414;49416;149195;149237;161588;373787;373886;373902;374264;374298;431858']]

new_list = []

for row in csv_reader_output[1:]: # Avoid the title row
    description = row[0] # Your ABC
    for article in row[1].split(';'): # Splitting the article number
        new_list.append([description, article])

for item in new_list:
    print(item)