2017-07-13 34 views
0
  1. 我能够将文件加载到列表中,如下所示。

[ABC,1; 2; 3] [DEF,4; 5; 6]如何将分隔的CSV文件加载到Python中?

  • 然而,我需要它格式化像什么如下所示。

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

  • 下面是我用于加载该文件的代码:

    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

    您需要在此处显示您的代码和示例数据。看起来你有一个分隔符的混合。 – roganjosh

    +0

    感谢您显示一些代码。我认为问题不在于分隔符(您可以在'csv.reader'中指定分隔符,但默认为逗号)。你想要的是自定义代码IIUC。你将不得不做第二次分裂。给我一分钟。 – roganjosh

    回答

    0

    从你的第一个问题,我认为这是你正在寻找的输出(虽然,开始“Keurig绿山...”的类别让我不确定)。 CSV阅读器在,分隔符上正确分隔,但您需要嵌套for循环以基于;定界符的持续保留产品编号的辅助拆分。

    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) 
    
    相关问题