2014-05-08 1 views
1

쉼표로 구분 된 문자열 특성을 HDF5 데이터 집합에 쓰려고합니다. 나는 데이터는,이 같은쉼표로 구분 된 문자열 특성을 HDF5 데이터 집합 C++에 쓰기

이제
Timestamp Prop1 Prop2 

나는이 해킹 것을 알고 등의 분야를 원주가 기본적으로되어

dset = H5Dcreate(file, "dset1", H5T_NATIVE_DOUBLE, file_space, H5P_DEFAULT, plist, H5P_DEFAULT); 

사용하여 데이터 세트를 만들 수 있지만 내 목적은 어떻게 든 태그를하는 것이 충분 dset은 "TimeStamp, Prop1, Prop2"와 같은 문자열을 사용합니다. 나는 HDF5 파일을 파이썬으로 다시 읽고 문자열을 쉽게 읽을 수있다. 나는 이것을 위해 H5AWrite 메소드를 사용할 수 있다고 생각한다. 우리가 그것으로 문자열을 쓸 수 있다면 난 내 질문을 다시 파이썬에서 파일을 여는 동안 읽을 수있는 방법 쉼표로 구분 된 속성

2를) 작성하는 방법을 사용하는 방법)

1 확실하지 않다 .

C++에서 예제를 찾을 수 없었습니다. 모든 포인터를 부탁드립니다. 여기

답변

1

은 (당신이 그것을 사용하는 것 때문에 C++을 요구에도 불구하고 C API를 사용하여) column1,column2,column3 같은 문자열로 속성을 작성하는 방법입니다 :

다음
hid_t atype = H5Tcopy(H5T_C_S1); 
H5Tset_size(atype, H5T_VARIABLE); 
hid_t attr = H5Acreate(dset, "columns", atype, H5S_SCALAR, H5P_DEFAULT); 
H5Awrite(attr, atype, "column1,column2,column3"); 
H5Aclose(attr); 

파이썬에서 읽어 :

import h5py 
file = h5py.File("my_file.h5", "r") 
dset = file["/my_dset"] 
columns = dset.attrs["columns"].split(",") 
+0

감사합니다. Simon, 감사합니다. 요점은 내가 VStudio C++에서 실행하고 빌드하고 잘 실행됩니다. –

+0

쉼표로 구분 된 값을 가진 단일 문자열 대신에 문자열의 배열로 특성을 작성하여 한 단계 더 멋지게 만들 수 있습니다 ... 그러나 조금 더 간단합니다. – Simon

+0

네,하지만 내 목적을 위해 작동하지만 예, 조언 주셔서 감사합니다, 당신이 말하는 것을 참조하십시오. –