【问题标题】:Import data into Python from txt file将数据从txt文件导入Python
【发布时间】:2017-09-30 01:16:40
【问题描述】:

我有一个 .txt 文件,其中的数据排列如下:

3430 4735 1
3430 4736 1
3430 4941 2
3430 5072 1
3430 5095 1
3430 5230 1
3430 5299 1
3430 5386 1
3430 5552 1
3430 5555 1
3430 5808 1
3430 5853 1
3430 5896 1
3430 5988 1
3430 6190 4
3430 6191 1
3430 6225 1
3430 6296 1

如何从中创建 Python 列表,一个包含第一列中的数字,另一个包含第二列中的数字?

【问题讨论】:

    标签: python list import python-import genfromtxt


    【解决方案1】:

    看看 pandas 库,它对数据流非常有用。 http://pandas.pydata.org/

    或者你可以直接这样做:

    list1 = []
    list2 = []
    list3 = []
    with open('test.txt', 'r') as f:
        content = f.readlines()
        for x in content:
            row = x.split()
            list1.append(int(row[0]))
            list2.append(int(row[1]))
            list3.append(int(row[2]))
    

    【讨论】:

    • 这也给了我错误“IndexError: list index out of range”。我做错了什么?
    • 带示例文件?
    • 在访问和更新 for 循环内的列表之前添加长度检查。
    • 结果列表将字符串作为元素。我如何做到这一点,以便我有整数? @JérémyCaré
    • 在我的代码中,我将所有元素转换为 int,因此它们是整数而不是字符串。看一下 int() 函数
    【解决方案2】:
    one_list = []
    another_list = []
    with open("somefile.txt", "r") as this_file:
        for line in this_file:
            one_list.append(line.split(' ')[0])
            another_list.append(line.split(' ')[1])
    

    将文件中每一行的第一个元素放入一个列表中,将所有第二个元素放入另一个列表中。

    【讨论】:

    • 谢谢。当我尝试运行它时,出现以下错误:“IndexError: list index out of range”
    【解决方案3】:

    list1 = []

    list2 = []
    whith open('a.txt','r') as fh:
      lineList = fh.readlines()
      for line in listList:
        numbers = line.strip().split()
        list1.appned(numbers[0])
        list2.extend(numbers[1:])
    
    print(list1)
    print(list2)
    

    【讨论】:

      【解决方案4】:

      这样的?

      flst = []
      slst = []
      tlst = []
      
      file = open('your.txt', 'r')
      for line in file:
          a = line.split()
          flst.append(int(a[0]))
          slst.append(int(a[1]))
          tlst.append(int(a[2]))
      

      创建三个空列表,打开文件并阅读 txt 文件的每一行。然后拆分行并在每一行中将第一、第二和第三个字符串添加到相应的列表中。

      【讨论】:

      • 列表元素是字符串,而我希望它们是整数。我该如何解决?
      • 你可以把它们变成整数。我更改了示例代码。
      猜你喜欢
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      相关资源
      最近更新 更多