【问题标题】:How to make a file that looks like a list into a list?如何将看起来像列表的文件变成列表?
【发布时间】:2020-10-26 00:19:43
【问题描述】:

在我的代码中,我有一个名为 euler22.txt 的列表:

with open('euler22.txt') as f:
    name_list = f.read().splitlines()

euler22.text 是一个长文件,但我将在其中发布前 5 个值:

"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH"

如您所见,它的结构是一个列表,但是当我按照我的方式运行代码时,它说name_list 的长度只有 1 - 而我希望它是 500(名单)。如何让我的代码将此文件作为一个列表打开,该列表是它在文件中的结构长度?

【问题讨论】:

标签: python list file format


【解决方案1】:

您可以使用split 方法:

with open('euler22.txt') as f:
    name_list = f.read().split(",")

【讨论】:

    【解决方案2】:

    您可以使用csv 模块将数据加载到列表中:

    import csv
    
    data = []
    with open('<your file.txt>', 'r') as f_in:
        reader = csv.reader(f_in, delimiter=',', quotechar='"')
        for line in reader:
            data.extend(line)
    print(data)
    

    打印:

    ['MARY', 'PATRICIA', 'LINDA', 'BARBARA', 'ELIZABETH']
    

    或者:

    如果数据只有一行可以尝试使用ast.literal_eval:

    from ast import literal_eval
    data = literal_eval('[' + open('<your file.txt>', 'r').read() + ']')
    

    【讨论】:

      【解决方案3】:

      该文件看起来像一个包含许多列和一行的 CSV。你可以使用 csv 模块来解析它。

      >>> import csv
      >>> with open('euler22.txt') as fp:
      ...     names = next(csv.reader(fp))
      ... 
      >>> names
      ['MARY', 'PATRICIA', 'LINDA', 'BARBARA', 'ELIZABETH']
      >>> len(names)
      5
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 2017-05-18
        • 2013-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-14
        相关资源
        最近更新 更多