8

リストのリストの形式でデータを収集し、そのデータをテキスト ファイルに書き込みました。テキストファイルのデータは次のようになります

[[123231,2345,888754],[223467,85645]]

私はそれを読み返し、プログラムのリストのリストに保存したいと考えています。しかしread()、ファイルからフラットリストを作成しようとすると、すべてが文字列として解釈され、解釈が完全に変更され、Pythonでリストの通常のリストとして読み取った後に取得した結果を照会できません。

誰かがファイルを読んで、リストのリストと同じ形式で保存するのを手伝ってくれますか?

ありがとうございました!

4

4 に答える 4

8

これは有効なJSONのようです。

したがって、次のように簡単に実行できます。

import json
with open(myfilename) as f:
    lst = json.load(f)

「リストのリスト」をファイルに保存するには、次のようにします。

with open(myfilename, "w") as f:
    json.dump(lst, f)
于 2012-04-24T08:30:04.087 に答える
2

代わりに、データをピクルすることができます。保存するには:

>>> import pickle
>>> p= [[123231,2345,888754],[223467,85645]]  
>>> with open("data.txt", "wb") as internal_filename:
...     pickle.dump(p, internal_filename)

それをロードするには:

>>> with open("data.txt", "rb") as new_filename:
...     pp = pickle.load(new_filename)
>>> pp
[[123231, 2345, 888754], [223467, 85645]]

これは、より複雑なオブジェクトにも役立ちます。

于 2012-04-24T08:34:04.177 に答える
2

またeval、これを達成するために使用することもできますが、他の解決策の方が良いかもしれません:

# reading a list from a file
f = open('data.txt', 'r')
l = eval(f.read())

# storing a list to a file
outf = open('out','w')
outf.write(str(l))

時々使用evalすることは悪い習慣です。詳細については、この投稿を確認してください。

于 2012-04-24T08:43:17.667 に答える
1

次のことを確認してください。

  • リストデータが入っているファイルはpythonファイルです
  • リストデータは変数に割り当てられます
  • ファイルはpythonモジュールにあります

その後、python ファイルからリストをインポートできます。たとえば、リスト my_list がファイル mylist.py にあるとします。

例えば:

# This is the file mylist.py
my_list = [[123231,2345,888754],[223467,85645]]

その後、 my_list を python リストとして扱うことができます

from mylist import my_list

for item in mylist:
   print "item = <", item, ">"
于 2012-04-24T08:56:20.803 に答える