2014-02-14 57 views
0

我有一個工具,其中我保存2格式的文件(一個是JSON和其他文本(沒有擴展名)),並有2個按鈕來打開它們。如何區分python 2.7中兩種不同類型的文件?

在升級版本的工具中,我刪除了文本格式的保存。而現在我不想要2個按鈕來加載2個不同的文件,我希望這兩個文件都加載相同的按鈕。

這是如何實現的,因爲一個文件具有「.json」擴展名,而其他文件沒有任何擴展名。

1的方法,我知道是檢查文件的擴展名(這是標準的方式?)

其他方法嗎?

這樣做的pythonic方式是什麼?

回答

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 
相關問題