【问题标题】:read the elements of a text in python在python中读取文本的元素
【发布时间】:2022-01-17 17:21:15
【问题描述】:

我有一个这样的文本文件:

没有分隔标记。 当我使用这些代码行时,它什么也不返回:

with open('input.txt','r') as f:
   contents = f.read()
   print(contents)

如何将其元素保存在 python 列表或数组中?

【问题讨论】:

  • 问题在于“input.txt”文件的格式。您可以检查它以查看它是否实际上是一个文本文件,并且您可以在记事本中编辑数字。您的代码没有任何问题。

标签: python list txt


【解决方案1】:
Array = []
with open('input.txt','r') as f:
   #contents = f.read()
   Array = f.readlines()
   print(contents)

【讨论】:

  • 这会读取所有行并将每一行添加到数组中。
  • 当我运行它时,'\n' 被添加到每个文本元素中。我想要一个纯数字的输出数组。
【解决方案2】:

试试这个:

    with open("./input.txt",'r') as file:
    for line in file:
        print(line)

【讨论】:

    【解决方案3】:

    我的input_numbers.txt 如下所示:

    1 2 3
    4 5 6
    7 8 9
    

    要将其解析为整数列表,可以使用以下方法:

    import itertools
    with open("input_numbers.txt", "r") as f:
        res = list(itertools.chain.from_iterable(list(map(int, x.split(" "))) for x in f))
    
    print(res)
    

    PS:请注意,您问的问题是如何将其元素保存在 python 列表或数组中?,而不是 如何将其打印到屏幕上(尽管你的代码试图做什么)

    【讨论】:

      【解决方案4】:

      这是你想要的代码。

          with open("./input.txt",'r') as file:
              elements = [line.rstrip('\n') for line in file]
          print(elements)
      

      【讨论】:

        【解决方案5】:
        import pandas as pd
        
        Data = pd.read_csv('input.txt')
        My_list = []
        for line in Data:
            My_list.append(line)
        
        print(My_list)
        

        【讨论】:

        • 这段代码只返回一个元素。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-11
        • 2023-02-21
        • 1970-01-01
        • 2013-06-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多