【问题标题】:How to change a text file into a list? [duplicate]如何将文本文件更改为列表? [复制]
【发布时间】:2017-05-03 17:21:53
【问题描述】:

我已经知道如何将文本文件转换为 python,但是...我现在想将该文件转换为 list

我的文件:

1
2
3

我的代码:

file = open("File.txt", "r")
file = list(file)

有没有办法让它真正起作用?如果你找到了答案,请让它变得简单。

【问题讨论】:

  • 什么是“有效的东西”。您发布的代码有效,那么您的问题是什么?

标签: python list file


【解决方案1】:

编辑 我的最终解决方案。 感谢@juanpa.arrivillaga 提示不需要中间迭代器操作

map(str.strip, open('asd.txt'))

或者如果你更喜欢它,那么这个:

[x.strip() for x in open('File.txt')]

【讨论】:

  • 为什么是tuple() 而不是list()
  • “隐藏”的宝石是什么意思?
  • 打开生成器并构建一个可迭代对象。我只是好奇
  • 为什么要使用listtuple?您可以map 或直接在文件处理程序上使用列表解析,而无需创建不必要的中间数据结构。
  • 就个人而言,我喜欢rstrip('\n'),因为可能需要保留前导/尾随空格
【解决方案2】:
$ echo -e "one\ntwo\nthree" > /tmp/list.txt
$ cat /tmp/list.txt 
one
two
three
$ python -c "fh = open('/tmp/list.txt'); print(fh.readlines())"
['one\n', 'two\n', 'three\n']

【讨论】:

  • 不确定是否需要外壳来回答readlines()...
  • 是的,创建示例中使用的 txt 文件似乎也是最简单的,但你是对的,它增加了一个 SollyBunny 可能不熟悉的不必要的抽象
【解决方案3】:

试试这个:

f = open('filename.txt').readlines()
f = [int(i.strip('\n')) for i in f]

print(f)

【讨论】:

    【解决方案4】:

    如果您的条目是数字,您可以使用 numpy 的 loadtxt

    import numpy as np
    data = np.loadtxt('test.txt')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-21
      • 2021-11-16
      • 1970-01-01
      • 2014-02-02
      • 2021-07-27
      • 2018-10-06
      • 2017-09-07
      • 2020-09-03
      相关资源
      最近更新 更多