2013-07-02 2 views
0

나는 예를 들어 ASCII 파일에서 테이블로 저장 데이터의 일련의이 : 그냥 작업의 몇 년 후 C로 다시 돌아왔다가져 오기 ASCII 테이블

1 100 2.345 
2 342 8.233 
3 65 89.23 

을 파이썬에서이 가져 오기를 할 수있는 라이브러리가 이미 없습니까? 파이썬에서 numpy.loadtxt()과 같은 것? 예를 들어 float 또는 double 배열을 출력하려면? 과거에 C (예 : C99)에서이 작업을 수행하는 프로그램을 직접 작성해야한다는 것을 기억합니다. 가져 오기를 수행 할 표준 패키지가 있습니까? 결과를 ASCII 파일로 저장하는 방법은 어떻습니까? 나는이 두 가지 모두를위한 프로그램을 직접 작성할 수는 있지만 다른 사람들이 내 앞에했던 것을 반복하고 싶지는 않습니다! 기계

답변

1

저는 (내 질문에 매우 신속하게 답변 한 친절한 사람들의 도움으로)이 작업을 수행하기 위해 자신의 라이브러리를 작성했습니다.이 라이브러리는 here으로 볼 수 있습니다. 프로그램에서 사용할 수있는 C 배열로 데이터 테이블 (알 수없는 헤더, 열 및 행 수)을 사용합니다. 어떤 제안이라도 고맙게 생각합니다. 고맙습니다.

1

fscanf()가 완벽하게 작동 할 수있는 일반 형식의 파일을 생성 : 당신이 컬럼의 수와 파일을 처리 할 수있게하려면

int index; 
int x; 
double y; 

while (fscanf(infile, "%d %d %lf\n", &index, &x, &y) == 3) { 
    /* ... */ 
} 

그냥 파일 데이터 구조에 공급 한 그 나중에 검색하거나 조작 할 수 있다면 프로그램이나 스크립트를 사용하여 CSV 또는 XML 형식의 동일한 테이블을 생성하는 것이 좋습니다. 그런 다음 libcsv 또는 Mini-XML과 같은 라이브러리를 사용하여 파일을 구문 분석하십시오.

+0

감사합니다. 더 일반적인 방법이 없습니까? 예를 들어 데이터의 열 수를 직접 확인할 필요는 없습니다. 또는 테이블에 예를 들어 50 개의 열이있는 경우! 모든 열 형식을 수동으로 지정하고 각 특정 테이블을 기반으로 변수를 정의하는 것은 비현실적입니다! – makhlaghi

+0

원하는 것을 얻기위한 최선의 방법은 임의의 텍스트 테이블을 CSV 또는 XML 형식으로 변환하는 프로그램을 작성하고 해당 입력을 기반으로 데이터 구조를 생성하는 기존 라이브러리를 사용하는 것입니다. – jxh

+0

"기존 도서관"에 저를 소개해 주실 수 있습니까? – makhlaghi