【问题标题】:Python: Import array from file with indexes intactPython:从索引完整的文件导入数组
【发布时间】:2017-02-27 19:04:55
【问题描述】:

我有一个文件想要导入到数组中,但每个条目都作为索引,因此我可以调用每个特定的条目。

文件(testing_array.txt):

["zero", "one", "two", "three", "four", "five"]

脚本:

f = open('testing_array.txt').read()
array = [f]
print (array[0])
print (array[1])

输出:

["zero", "one", "two", "three", "four", "five"]
Traceback (most recent call last):
  File "testing_array.py", line 4, in <module>
    print (array[1])
IndexError: list index out of range

我尝试了一个 for 循环,但未能成功地对每个索引的每个条目进行 .insert。我 3 天前才开始编写 python 脚本,所以如果我忽略了一些基本的东西,我深表歉意。任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 听起来你在寻找eval()。不要不要在生产代码中使用eval()。这是非常危险的,尤其是对于文件等不受信任的输入。
  • array = [f] 之后添加array = array[0] 并告诉我这是否有效
  • @LeonZ.,这可能会导致 "["'"' 被输出,因为它们分别是文件中的第一个和第二个字符。
  • @Kevin 你可能是对的,只是想确保他在数组中确实有一个字符串,然后从那里获取它
  • @LeonZ。那么type(f)呢?

标签: python arrays fopen


【解决方案1】:

尝试使用 json 序列化程序(与 list 的语法相同)。

import json

my_list = json.loads('["zero", "one", "two", "three", "four", "five"]')

【讨论】:

  • 天哪,这真的很容易。感谢您的帮助!
【解决方案2】:

您还可以删除方括号并将行拆分为列表。

>>> line = '["zero", "one", "two", "three", "four", "five"]'
>>> line.strip("[]").split(",")
['"zero"', ' "one"', ' "two"', ' "three"', ' "four"', ' "five"']

【讨论】:

    猜你喜欢
    • 2022-10-14
    • 2018-02-09
    • 1970-01-01
    • 2017-07-14
    • 2020-08-27
    • 2023-03-03
    • 2022-12-29
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多