質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1578閲覧

リスト型の変数をファイルに保存したいです

Tanaka_Masaya

総合スコア3

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/09/09 14:09

編集2021/09/09 14:12

前提・実現したいこと

python初心者です。
リスト型の変数をファイルに保存したいです。反復計算で得たリストなのですが、一時保存し、別の反復計算の初期値として用いたいと思っています。
調べてjoblibとpickleを試したのですが、エンコードのエラーが出てうまくいきませんでした。joblibやpickle以外の方法でも構いません。
リストの要素は2000×1700あります。

保存したいリスト

print(phi) >> [[0.00000000e+00 0.00000000e+00 1.72448523e-20 ... 7.23511703e-02 7.18433075e-02 7.13391173e-02] [0.00000000e+00 1.28689710e-20 1.59739497e-18 ... 7.28597864e-02 7.23495609e-02 7.18433075e-02] [8.62242613e-21 8.20902592e-19 5.00490234e-17 ... 7.33695868e-02 7.28572149e-02 7.23486134e-02] ... [3.19949712e-03 3.23395783e-03 3.26889093e-03 ... 1.92377222e-02 2.39458419e-02 1.90753268e-02] [3.16498920e-03 3.19950631e-03 3.23416682e-03 ... 2.39544806e-02 1.90662098e-02 2.38118480e-02] [3.13107454e-03 3.16498920e-03 3.19931637e-03 ... 1.90659764e-02 2.38118480e-02 1.89040491e-02]]

joblibを試してみたソースコードと結果

import sys import joblib joblib.dump(phi,"temp.txt",compress=3) >>['temp.txt'] しかし、temp.txtファイルを開くとリストは保存されておらず、 「Error!C:\Users\OO\OO\temp.txt is not UTF-8 encoded Savindg disabled. See console for more details.」 と表示されてしましました。

次に、UTF-8のファイルをつくってみた

f = open('temp2.txt','w',encoding='utf-8') joblib.dump(phi,"temp2.txt",compress=3) >>['temp2.txt'] しかし、temp2.txtファイルを開いても同様の結果でした

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

「ファイルを開く」と書いてありますが、どのように開いていますか? dumpしたデータは、txtファイルではないので、普通に開いて中を見ようとしてもみられませんよ?
保存した中身を取り出したいのであれ、 joblib.load()を使いましょう。
pickleの場合でも同様です。

機能を使う場合には、使いかたを公式のドキュメントや記事などで確認してから使いましょう。

また、読めるような形で保存したいということであれば、json形式を使うのがお勧めです。
使いかたについては、公式ドキュメントや記事を参考にしましょう。

投稿2021/09/09 14:35

TakaiY

総合スコア13790

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tanaka_Masaya

2021/09/09 15:20

ありがとうございます! 無事読み込めました!
guest

0

ベストアンサー

しかし、temp.txtファイルを開くとリストは保存されておらず、

保存されていないというのは勘違いですね。そのファイルはテキストファイルでは無いです。

temp.txtの中身は、

Python

1import joblib 2data = joblib.load("temp.txt") 3print(data)

と表示します。data==phiはTrueになるはずです。

テキストファイルで保存したいのなら、JSONがいいのでは?

投稿2021/09/09 14:24

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tanaka_Masaya

2021/09/09 14:39

やってみると同じリストが表示され、全ての要素でTrueが表示されました! また、別のページ(?)で a = joblib.load( "temp.txt") print(a) を入力すると無事に元のリストが読み込めました。ありがとうございます。 ちなみに、エラーが表示された原因は何なのでしょうか? また,保存したファイルはテキストファイルでなく何のファイルなのでしょうか? (保存するファイルにこだわりはありません)
otn

2021/09/09 14:46

> 何のファイルなのでしょうか? 広く言うとバイナリーファイル、狭く言うとおそらくjoblib形式ファイルでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問