2014-03-05 2 views
1

파일 구조를 자동으로 추측하는 패키지/함수가 있는지 궁금합니다. .csv 파일 공간이나 탭은 내가 생각하고있어 자동으로 character delimiter (예 : 탭, 공백, 쉼표), header (예/아니오), quote (예/아니오), number of lines to skipscomment.char을 추론하는 등파이썬에서 데이터 자동 파싱

구분 .

분명히 이것은 파일을 한 번 지나치게 통과하는 것을 의미 할 것입니다. 그러나 그것이 올바르게 추측 할 것이라는 것을 보증 할 수 있다면 그것은 좋을 것입니다.

시도가 있었습니까?

+0

클로저/다운 보우 터 : 프로그래밍 문제는 무엇입니까? – PascalVKooten

+0

범위가 얼마나 넓습니까? 모든 CSV 형식을 인식해야합니까? 아니면 CSV + Excel 스프레드 시트를 인식해야합니까? 워드 프로세서? mp3s? 90 년대 후반 .xm modfiles? 질문에 초점을 맞추면 도움이 될 것입니다. –

+0

어쩌면 질문에 나열된 요구 사항을 시작으로? – PascalVKooten

답변

1

하지만 당신은 구분 기호를 설정해야합니다 (pip install pyread, pandas에 따라 다름).

는 등으로 사용할 수 있습니다 :

from pyread import read_auto 
read_auto(PATHFILE) 

기본 기능은 이제 원래의 질문에 언급 된 모든 것을 포함한다.

두 가지 방법을 사용 :

1) 그냥 데이터를로드 : 속도 문제가 경우에만 read_auto(PATHFILE)

2)가로드 할 수 있도록 파일 구조를 추론하고 사전으로 인쇄 즉시 다음 번에 예 :

from pandas.io.parsers import read_csv 
# this will be printed as dict to screen 
read_auto(PATHFILE, inferOnly=True) 
{'filepath_or_buffer': PATHFILE, 'skiprows':1, 'sep':',', 'quotechar':'"'} 

# Copy and paste the dictionary info into the file, e.g. store it in "info" 
info = {'filepath_or_buffer': PATHFILE, 'skiprows':1, 'sep':',', 'quotechar':'"'} 
read_csv(**info) 

이렇게하면 단 한 번 유추해야하므로 대략 2 배 빨라집니다.

사람들이 정말 유용 할 다른 기능을 원한다면 내가 그 의견에 대해 알려주고 내가 할 수있는 것을 보도록하겠습니다.

0

csv 모듈을 사용해보십시오. 이름이 암시 하듯이 csv 파일을 지원하지 않습니다. 하지만 실제로이 작업을 시작하고 패키지 pyread을 만들어

http://docs.python.org/2/library/csv.html

+0

-1 아이디어는 모든 것을 자동으로 파악한다는 것입니다. – PascalVKooten

+0

@ PascalvKooten 우리는 더 나은 대답을 기다려야 할 것입니다. –

+0

사실, csv 파일로 제한되어 있다면'csv' 모듈은 이미 이것을 정렬합니다. 참조 된 페이지에서'Sniffer' 예제를보십시오. –