【问题标题】:How can I send elements in csv file to variables in Python?如何将 csv 文件中的元素发送到 Python 中的变量?
【发布时间】:2016-07-19 19:59:36
【问题描述】:

我有一个包含以下格式信息的 excel/csv 文件:

    A     B     C  
1   3     A     T
2   5     T     G
3  100    A     C
4  101    A     A

我想将 var1 设置为 3,将 var2 设置为 A,将 var3 设置为 T,对这些变量运行一些操作,并在下一行执行相同的操作。 IE。 next pass 会将 var1 设置为 5,将 var2 设置为 T,将 var3 设置为 G,然后运行操作,等等。

在 Python 中完成此任务的最佳方法是什么?我对 Python 编程还很陌生。

【问题讨论】:

    标签: python excel csv


    【解决方案1】:

    打开 CSV,然后利用所有内容都用逗号分隔的事实。注意我们如何使用[1:] 来忽略第一行。

    f = open("yourcsv.csv","r")
    lines = f.readlines()
    for i in lines[1:]:
        split_line = i.split()
        var1 = split_line[1]
        var2 = split_line[2]
        var3 = split_line[3]
        # Do something with the values
    

    编辑:

    在 cmets 中,您说 ABC/1234 是 excel 标记。如果是这样,以下将起作用。

    f = open("yourcsv.csv","r")
    lines = f.readlines()
    for i in lines:
        split_line = i.split()
        var1 = split_line[0]
        var2 = split_line[1]
        var3 = split_line[2]
        # Do something with the values
    

    【讨论】:

    • 感谢您的帮助!我使用 ABC/1234 来指示 Excel 中的行/列。 [1:] 还需要吗?
    • @maharaja9933 如果我的回答解决了您的问题,您可以通过按答案旁边的复选标记来接受吗?
    • @maharaja9933 谢谢!
    • @maharaja9933 不,1: 不是必需的。让我快速更新我的答案。
    【解决方案2】:

    你可以使用dict来实现请求

    import csv
    varLst = [var1,var2,var3]
    with open(filepath,'r') as f:
      r = csv.reader(f)
      for line in r:
         varDict = { v: varLst[i] for i,v in enumerate(line) }
         # do something
         # if you want call var1 ==> varDict['3'] for first line of data
    

    【讨论】:

      【解决方案3】:

      在等待回复时,我设法自己制定了一个不雅的解决方案,我想我会提供自己的解决方法,以防将来可以帮助某人或获得反馈。上面建议的两种方法都有效!

      import csv
      with open('scz.csv', newline='') as csvfile:
         filereader = csv.reader(csvfile, delimiter=' ', quotechar='|')
         for row in filereader:
             str_row = ''.join(row)
             var1, var2, var3 = str_row.split(',')
      

      【讨论】:

        猜你喜欢
        • 2018-12-23
        • 2012-10-01
        • 1970-01-01
        • 2018-01-04
        • 1970-01-01
        • 2020-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多