簡體   English   中英

如何從文件中讀取python中的數組列表並將其放入數組列表中?

[英]How can i read a list of arrays in python from a file and put it in a list of array?

我有一個存儲在這樣的文本文件中的數組列表
[array([21,25,20]),array([12,24,23]),array([41,23,22])]
我想閱讀這個文件並將它也放在一個列表中,因為我有一個只接受一個列表的函數。
這里的想法是數據作為字符串存儲在文件中。
當我嘗試使用 list() 時,它會加上引號,但我無法以我想要的方式讀取數據。

您可以使用eval ( https://docs.python.org/3/library/functions.html#eva ) 來評估您讀入 Python 數據的文本。

確保您信任數據源!

除此之外,您顯示的當前數據不是有效的 Python,因為缺少類型代碼 - 請參閱https://docs.python.org/3/library/array.html

如果您知道類型代碼,則必須閱讀文本、解析數據、手動添加類型代碼,然后對其進行評估。

更新 - 關於上述數據的有效性

❯ python3
Python 3.6.9 (default, Jul 17 2020, 12:50:27) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from array import array
>>> [array([21,25,20]),array([12,24,23]),array([41,23,22])]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: array() argument 1 must be a unicode character, not list
>>> 

...有效將是例如...

>>> [array("i",[21,25,20]),array("i",[12,24,23]),array("i",[41,23,22])]
[array('i', [21, 25, 20]), array('i', [12, 24, 23]), array('i', [41, 23, 22])]
>>> 

我使用pickle找到了一個答案,pickle是一種將對象保存和加載到文件的內置方法。

這是寫入文件

import pickle
with open('dataset_faces.dat', 'wb') as f:
    pickle.dump(encodeTest, f)

從文件中讀取

import pickle
with open('dataset_faces.dat', 'rb') as f:
    all_face_encodings = pickle.load(f)

這是對問題的解釋以及我在哪里找到答案鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM