2014-02-14 3 views
0

파일을 두 가지 형식으로 저장하는 도구가 있습니다. 하나는 JSON이고 다른 하나는 텍스트 (확장자 없음)이며 두 개의 단추가 있습니다.파이썬 2.7에서 두 가지 유형의 파일을 구별하는 방법은 무엇입니까?

업그레이드 된 버전의 도구에서 텍스트 형식 저장을 제거했습니다. 그리고 지금 나는 2 개의 다른 파일을로드하기위한 2 개의 버튼을 원하지 않습니다. 두 개의 파일이 같은 버튼으로로드되기를 원합니다.

한 파일의 확장자가 ".json"이고 다른 파일의 확장자가 없기 때문에 어떻게 수행 할 수 있습니까? 내가 아는

한 방법은 파일 확장자 (이 표준 방법은 무엇입니까?)

다른 방법을 확인하는 것입니다?

이 작업을 수행하는 비법은 무엇입니까?

답변

2

예. 확장자를 확인할 수 있습니다. 사용 endswith

if filename.endswith('.json'): 
    # it's json 
else: 
    # it's not 

또는 파일 내용 자체를 확인할 수 있습니다.

s = open(filename).read() 
try: 
    json.loads(s) 
    # it's json 
except ValueError: 
    # it's not 
+0

(파일 확장자 검사 제외) – Patrick

2

두 가지 방법이 수행 할 수 있습니다


사용 os.splitext을 결정하기 위해 확장 'json' 경우 :

if os.splitext(path)[1] == 'json': 
    ... 

또는 json로 구문 분석을 시도, 구문 분석 실패하면 다른 방법 :

try: 
    data = json.loads(contents) 
except ValueError: 
    data = parse_text() # your custom function i guess? 
1
import os 
if os.path.splitext('file.json')[1] == '.json': 
    #it's a json file 
else: 
    #it's not a json 
관련 문제