我有一個工具,其中我保存2格式的文件(一個是JSON和其他文本(沒有擴展名)),並有2個按鈕來打開它們。如何區分python 2.7中兩種不同類型的文件?
在升級版本的工具中,我刪除了文本格式的保存。而現在我不想要2個按鈕來加載2個不同的文件,我希望這兩個文件都加載相同的按鈕。
這是如何實現的,因爲一個文件具有「.json」擴展名,而其他文件沒有任何擴展名。
1的方法,我知道是檢查文件的擴展名(這是標準的方式?)
其他方法嗎?
這樣做的pythonic方式是什麼?
我有一個工具,其中我保存2格式的文件(一個是JSON和其他文本(沒有擴展名)),並有2個按鈕來打開它們。如何區分python 2.7中兩種不同類型的文件?
在升級版本的工具中,我刪除了文本格式的保存。而現在我不想要2個按鈕來加載2個不同的文件,我希望這兩個文件都加載相同的按鈕。
這是如何實現的,因爲一個文件具有「.json」擴展名,而其他文件沒有任何擴展名。
1的方法,我知道是檢查文件的擴展名(這是標準的方式?)
其他方法嗎?
這樣做的pythonic方式是什麼?
是的,你可以檢查擴展名。使用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
兩種方法可以採取:
使用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?
import os
if os.path.splitext('file.json')[1] == '.json':
#it's a json file
else:
#it's not a json
其他任何方法(除了檢查文件擴展名) – Patrick