【问题标题】:Save a list of lists in different CSV files将列表列表保存在不同的 CSV 文件中
【发布时间】:2021-05-09 18:11:54
【问题描述】:

我有 1 个大列表,即 2 个列表,按第一项分组。

我希望将每组列表保存在不同的 CSV 文件('|')中。

这是一个大名单:


[
 [
  ['2-MG', '3_4_5', '1110', '200', 'xxw', 'sder', 'key_3', '01032021', '31032021', 'sder', ''],
  ['2-MG', '2_3_4', '1110', 'C-200', '08032021', '2', '2', '123', ''],
  ['2-MG', '3_4_5', '1110', 'C-200', '08032021', '3', '2', '123', ''],
  ['2-MG', '2_3_4', '08032021', '1115', '5', 'xxe', 'sdf', '0', 'xxe', '5', 'xxe', '', ''],
  ['2-MG', '3_4_5', '08032021', '1115', '6', 'xxz', 'csd', '0', 'xxz', '6', 'xxz', '', '']
  ],
 [
  ['1-MG', '1_2_3', '1110', '200', 'xxr', 'wer', 'key_1', '01032021', '31032021', 'wer', ''],
  ['1-MG', '2_3_4', '1110', '200', 'xxv', 'cad', 'key_2', '01032021', '31032021', 'cad', ''], 
  ['1-MG', '1_2_3', '1110', 'C-200', '07032021', '1', '2', '123', ''], 
  ['1-MG', '2_3_4', '1110', 'C-200', '07032021', '2', '2', '123', ''], 
  ['1-MG', '3_4_5', '1110', 'C-200', '07032021', '3', '2', '123', ''], 
  ['1-MG', '1_2_3', '1110', 'C-200', '08032021', '1', '2', '123', ''], 
  ['1-MG', '1_2_3', '07032021', '1115', '1', 'xxr', 'wer', '0', 'xxr', '1', 'xxr', '', ''], 
  ['1-MG', '2_3_4', '07032021', '1115', '2', 'xxv', 'cad', '0', 'xxv', '2', 'xxv', '', ''], 
  ['1-MG', '3_4_5', '07032021', '1115', '3', 'xxw', 'sder', '0', 'xxw', '3', 'xxw', '', ''], 
  ['1-MG', '1_2_3', '08032021', '1115', '4', 'xxt', 'dse', '0', 'xxt', '4', 'xxt', '', '']
  ]
 ]

这是我的代码:

g = []

for i in biglist:
    for j in i:
        k = j[0]
        #j.pop(0)
        with open(f'{k}.csv', 'w', newline='') as f:
                writer = csv.writer(f, quoting=csv.QUOTE_NONE, delimiter='|')
                #print(j)
                #print(k)
                g.append(j)
                writer.writerows(g)

这是我的预期结果:

1st file named '2-MG.csv'

2-MG|3_4_5|1110|200|xxw|sder|key_3|01032021|31032021|sder|
2-MG|2_3_4|1110|C-200|08032021|2|2|123|
2-MG|3_4_5|1110|C-200|08032021|3|2|123|
2-MG|2_3_4|08032021|1115|5|xxe|sdf|0|xxe|5|xxe||
2-MG|3_4_5|08032021|1115|6|xxz|csd|0|xxz|6|xxz||


2nd file named '1-MG.csv'

1-MG|1_2_3|1110|200|xxr|wer|key_1|01032021|31032021|wer|
1-MG|2_3_4|1110|200|xxv|cad|key_2|01032021|31032021|cad|
1-MG|1_2_3|1110|C-200|07032021|1|2|123|
1-MG|2_3_4|1110|C-200|07032021|2|2|123|
1-MG|3_4_5|1110|C-200|07032021|3|2|123|
1-MG|1_2_3|1110|C-200|08032021|1|2|123|
1-MG|1_2_3|07032021|1115|1|xxr|wer|0|xxr|1|xxr||
1-MG|2_3_4|07032021|1115|2|xxv|cad|0|xxv|2|xxv||
1-MG|3_4_5|07032021|1115|3|xxw|sder|0|xxw|3|xxw||
1-MG|1_2_3|08032021|1115|4|xxt|dse|0|xxt|4|xxt||

如果您有任何疑问,请告诉我

【问题讨论】:

    标签: python list csv


    【解决方案1】:

    您已经完成了迭代并将每个子列表的每个项目写入其自己的文件。

    只需写出每个子列表:

    import csv
    
    big_list = [[
        ['2-MG', '3_4_5', '1110', '200', 'xxw', 'sder', 'key_3', '01032021',
         '31032021', 'sder', ''],
        ['2-MG', '2_3_4', '1110', 'C-200', '08032021', '2', '2', '123', ''],
        ['2-MG', '3_4_5', '1110', 'C-200', '08032021', '3', '2', '123', ''],
        ['2-MG', '2_3_4', '08032021', '1115', '5', 'xxe', 'sdf', '0', 'xxe', '5',
         'xxe', '', ''],
        ['2-MG', '3_4_5', '08032021', '1115', '6', 'xxz', 'csd', '0', 'xxz', '6',
         'xxz', '', '']], [
        ['1-MG', '1_2_3', '1110', '200', 'xxr', 'wer', 'key_1', '01032021',
         '31032021', 'wer', ''],
        ['1-MG', '2_3_4', '1110', '200', 'xxv', 'cad', 'key_2', '01032021',
         '31032021', 'cad', ''],
        ['1-MG', '1_2_3', '1110', 'C-200', '07032021', '1', '2', '123', ''],
        ['1-MG', '2_3_4', '1110', 'C-200', '07032021', '2', '2', '123', ''],
        ['1-MG', '3_4_5', '1110', 'C-200', '07032021', '3', '2', '123', ''],
        ['1-MG', '1_2_3', '1110', 'C-200', '08032021', '1', '2', '123', ''],
        ['1-MG', '1_2_3', '07032021', '1115', '1', 'xxr', 'wer', '0', 'xxr', '1',
         'xxr', '', ''],
        ['1-MG', '2_3_4', '07032021', '1115', '2', 'xxv', 'cad', '0', 'xxv', '2',
         'xxv', '', ''],
        ['1-MG', '3_4_5', '07032021', '1115', '3', 'xxw', 'sder', '0', 'xxw', '3',
         'xxw', '', ''],
        ['1-MG', '1_2_3', '08032021', '1115', '4', 'xxt', 'dse', '0', 'xxt', '4',
         'xxt', '', '']]]
    
    for sub_lst in big_list:
        f_name = sub_lst[0][0]
        with open(f'{f_name}.csv', 'w', newline='') as f:
            writer = csv.writer(f, quoting=csv.QUOTE_NONE, delimiter='|')
            writer.writerows(sub_lst)
    

    1-MG.csv

    1-MG|1_2_3|1110|200|xxr|wer|key_1|01032021|31032021|wer| 1-MG|2_3_4|1110|200|xxv|cad|key_2|01032021|31032021|cad| 1-MG|1_2_3|1110|C-200|07032021|1|2|123| 1-MG|2_3_4|1110|C-200|07032021|2|2|123| 1-MG|3_4_5|1110|C-200|07032021|3|2|123| 1-MG|1_2_3|1110|C-200|08032021|1|2|123| 1-MG|1_2_3|07032021|1115|1|xxr|wer|0|xxr|1|xxr|| 1-MG|2_3_4|070​​32021|1115|2|xxv|cad|0|xxv|2|xxv|| 1-MG|3_4_5|07032021|1115|3|xxw|sder|0|xxw|3|xxw|| 1-MG|1_2_3|08032021|1115|4|xxt|dse|0|xxt|4|xxt||

    2-MG.csv

    2-MG|3_4_5|1110|200|xxw|sder|key_3|01032021|31032021|sder| 2-MG|2_3_4|1110|C-200|08032021|2|2|123| 2-MG|3_4_5|1110|C-200|08032021|3|2|123| 2-MG|2_3_4|08032021|1115|5|xxe|sdf|0|xxe|5|xxe|| 2-MG|3_4_5|08032021|1115|6|xxz|csd|0|xxz|6|xxz||

    编辑以包括从每个子列表中删除第一个元素:

    for sub_lst in big_list:
        f_name = sub_lst[0][0]
        with open(f'{f_name}.csv', 'w', newline='') as f:
            writer = csv.writer(f, quoting=csv.QUOTE_NONE, delimiter='|')
            writer.writerows([r[1:] for r in sub_lst])
    

    【讨论】:

    • 谢谢伙计。但是如果我需要删除第一列('1-MG' & '2-MG')呢?
    猜你喜欢
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 2016-03-11
    相关资源
    最近更新 更多