将 txt 文件作为数组导入 python 将两位数拆分为单独的值
Posted
技术标签:
【中文标题】将 txt 文件作为数组导入 python 将两位数拆分为单独的值【英文标题】:Importing txt file into python as an array splits double digits as separate values 【发布时间】:2018-02-26 20:34:02 【问题描述】:当我导入文件并将所有信息转换为数组时,由于某种原因,它会将两位数读取为单独的数字并将它们拆分为:
'add' [2, 0]
我使用的代码如下:
if oper == "or":
direction = open("directions.txt", "r")
direct = direction.readlines(1)
direct = direct[0].replace('[', '').replace(']', '')
direction.close()
Or = open(direct+".txt", "r")
content2 = Or.readlines(1) #Reads the first line in file
content2 = content2[0].replace('[', '').replace(']', '')
numbers2 = content2.split(", ")
numbersAdd = list(map(int, numbers2[1]))
numbersSub = list(map(int, numbers2[3]))
numbersDiv = list(map(int, numbers2[5]))
numbersMult = list(map(int, numbers2[7]))
print("These are the answers: \noutput/:")
print(numbers2[0],numbersAdd)
print(numbers2[2],numbersSub)
print(numbers2[4],numbersDiv)
print(numbers2[6],numbersMult)
print("")
文件中存储的信息如下:
[['add', 20], ['sub', 0], ['div', 0], ['mult', 0]]
任何帮助将不胜感激。
【问题讨论】:
您可以使用ast.literal_eval()
从文件中读取整行作为列表列表。
那么我应该把它放在哪里?
ast.literal_eval(content2)
你能回答这个问题吗?
当然,没问题。
【参考方案1】:
您可以使用ast.literal_eval(content2[0])
将文件中的整行作为列表读取。
【讨论】:
ast.literal_eval(content2) NameError: name 'ast' is not defined
Traceback (most recent call last): File "C:\Users\Stefan\Videos\School work\save.py", line 407, in <module> ast.literal_eval(content2) File "C:\Users\Stefan\AppData\Local\Programs\Python\Python36-32\lib\ast.py", line 85, in literal_eval return _convert(node_or_string) File "C:\Users\Stefan\AppData\Local\Programs\Python\Python36-32\lib\ast.py", line 84, in _convert raise ValueError('malformed node or string: ' + repr(node)) ValueError: malformed node or string: ["[['add', 0], ['sub', 0], ['div', 0], ['mult', 0]]"]
我对答案进行了更改。以上是关于将 txt 文件作为数组导入 python 将两位数拆分为单独的值的主要内容,如果未能解决你的问题,请参考以下文章
如何将不同类型的数据从文件导入 Python Numpy 数组?