2017-08-11 6 views
0

私は、私が使用したいco2a0000364.rd.002pythonでピックルを使用して、解析された変数をディスクに格納する方法。

enter code here 

    # co2a0000364.rd 

    # 120 trials, 64 chans, 416 samples 368 post_stim samples 

    # 3.906000 msecs uV 

#S1がOBJ、トライアル0 #FP1ちゃん0 0 FP1 0 -8.921 0 FP1 1 -8.433

と呼ばれるファイルを持っていますライブラリ "pickle"を使用して解析された変数をディスクに格納します。

>>> import pickle 

    >>> import pprint 

    >>> data= open("C:\\Users\\sonia\co2a0000364.rd.002") 

    >>> pprint.pprint(data) 
<_io.TextIOWrapper name='C:\\Users\\sonia\\co2a0000364.rd.002' mode='r' encoding='cp1252'> 
    >>> data_string = pickle.dumps(data) 
    Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    TypeError: cannot serialize '_io.TextIOWrapper' object 
+0

の漬けバージョンを保持するファイル
data_stringの内容を保持します 'data'はファイルハンドルではなく、ファイルの内容です。あなたが望むのはファイルの内容全体を返す 'data.read()'です。 ファイル「」: トレースバック(最後の最新の呼び出し):あなたのファイルは単なるテキスト、酸洗あるので、それは文句を言わないくらい – Nullman

+0

data.read(「\\ユーザー\\ソニア\のco2a0000364.rd.002 C」)を達成します、 TypeError例外では行1、:期待される整数の引数には、 'str' は >>> – sonia

+0

いいえいいえいいえを得ました。 'data = open(" C:\\ Users \\ sonia \ co2a0000364.rd.002 ")'のようにしてください: 'file_contents = data.read()' – Nullman

答えて

0

ファイルの内容ではなく、ファイルハンドルをピケットしようとしています。あなたのコードを次のように変更してみてください。

import pickle 
import pprint 
data= open("C:\\Users\\sonia\co2a0000364.rd.002") 
file_contents = data.read() 
pprint.pprint(file_contents) 
data_string = pickle.dumps(file_contents) 

file_contentsはそれ

+0

ありがとうございます。 – sonia

関連する問題