【问题标题】:Python: Extracting first element from each line of a CSV filePython:从 CSV 文件的每一行中提取第一个元素
【发布时间】:2021-01-16 14:14:38
【问题描述】:

我想从 csv 文件中读取数据并将某些内容添加到列表中

JFK,John F Kennedy International,5326,5486
ORY,Paris-Orly,629,379
MAD,Adolfo Suarez Madrid-Barajas,1428,1151
AMS,Amsterdam Schiphol,526,489
CAI,Cairo International,3779,3584

文本文件中的所有内容都在上面列出,我想从每一行中获取第一个,因此将 JFK ORY MAD AMS CAI 添加到列表中。

我试过了:

with open('Airports.txt', 'r') as f:
    reader = csv.reader(f)
    amr_csv = list(reader)

但这会将整个文本文件添加到列表中,我无法将其仅添加到第一行

总之,我想帮助我将此文本文件的第一行添加到保存为变量的列表中。

【问题讨论】:

  • 您说“第一行”两次,但您的示例是每行中的第一个条目。那些是不同的。你是什​​么意思?
  • 我应该更清楚我的问题,我想检索文件每一行中的第一个条目。

标签: python list csv file txt


【解决方案1】:

我很确定这会解决你的问题

import csv
with open('Airports.txt', 'r') as f:
    reader = csv.reader(f)
    amr_csv = list(reader)
    for line in amr_csv:
        print(line[0])

或者

import csv
with open('Airports.txt','r') as f:
    reader = csv.reader(f)
    amr_csv = [line[0] for line in reader]
    print(amr_csv)

【讨论】:

    【解决方案2】:
    import csv
    
    with open('Airports.txt', 'r') as f:
        reader = csv.reader(f)
        example_list = list(reader)
    
    print(example_list)
    

    输出:

    [['JFK', 'John F Kennedy International', '5326', '5486'], ['ORY', 'Paris-Orly', '629', '379'], ['MAD', 'Adolfo Suarez Madrid-Barajas', '1428', '1151'], ['AMS', 'Amsterdam Schiphol', '526', '489'], ['CAI', 'Cairo International', '3779', '3584'], []]
    

    感谢任何提供帮助的人,这就是我最终解决的问题,因为这是我一直在寻找的,希望这对任何有类似问题的人有所帮助。

    【讨论】:

      【解决方案3】:

      让我们做一些非常简单的事情。

      此 sn-p 将 IATA 代码从您的 CSV 文件中提取到 list

      with open('airports.txt') as f:
          iata = [i.split(',')[0] for i in f.readlines()]
      

      代码说明:

      本质上,这段代码是读取 CSV 的每一行并用逗号分隔;然后提取第一个元素 ([0]) 并使用 list comprehension 添加到列表中。

      输出:

      ['JFK', 'ORY', 'MAD', 'AMS', 'CAI']
      

      【讨论】:

        【解决方案4】:

        看看这是否有效

        import csv
        
        with open('Airports.txt', 'r') as file:
            reader = csv.reader(file)
            amr_csv = list(reader)
            for i in range(len(amr_csv)):
                print(amr_csv[i][0])
        

        您可以通过访问amr[line][column] 来访问二维数组中的任何数据。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-24
          • 1970-01-01
          • 2021-12-14
          • 1970-01-01
          相关资源
          最近更新 更多