コード例 #1
0
 def testReadWrite(self):
     tfile = tempfile.NamedTemporaryFile()
     data = [{'a': 'thisisa', 'b': 1, 'c': [1, 2, 3]},
             {'a': 'thisisb', 'b': 2, 'c': [2, 3, 4]}]
     jsonable.write(tfile.name, data)
     data2 = jsonable.read(tfile.name)
     self.assertEqual(data, data2)
     jsonable.append(tfile.name, data)
     data3 = jsonable.read(tfile.name)
     self.assertEqual(data + data, data3)
     tfile.close()
コード例 #2
0
ファイル: io.py プロジェクト: k1o0/ibllib
def load_file_content(fil):
    """
    Returns content of files. Designed for very generic file formats:
    so far supported contents are `json`, `npy`, `csv`, `tsv`, `ssv`, `jsonable`

    :param fil: file to read
    :return:array/json/pandas dataframe depending on format
    """
    if not fil:
        return
    fil = Path(fil)
    if fil.stat().st_size == 0:
        return
    if fil.suffix == '.csv':
        return pd.read_csv(fil)
    if fil.suffix == '.json':
        try:
            with open(fil) as _fil:
                return json.loads(_fil.read())
        except Exception as e:
            _logger.error(e)
            return None
    if fil.suffix == '.jsonable':
        return jsonable.read(fil)
    if fil.suffix == '.npy':
        return np.load(file=fil)
    if fil.suffix == '.pqt':
        return parquet.load(fil)
    if fil.suffix == '.ssv':
        return pd.read_csv(fil, delimiter=' ')
    if fil.suffix == '.tsv':
        return pd.read_csv(fil, delimiter='\t')
    return Path(fil)
コード例 #3
0
def load_data(session_path, time='absolute'):
    """
    Load PyBpod data files (.jsonable).

    Bpod timestamps are in microseconds (µs)
    PyBpod timestamps are is seconds (s)

    :param session_path: Absolute path of session folder
    :type session_path: str
    :return: A list of len ntrials each trial being a dictionary
    :rtype: list of dicts
    """
    if session_path is None:
        return
    path = Path(session_path).joinpath("raw_behavior_data")
    path = next(path.glob("_iblrig_taskData.raw*.jsonable"), None)
    if not path:
        return None
    data = jsonable.read(path)
    if time == 'absolute':
        data = [trial_times_to_times(t) for t in data]
    return data