我有一个工具,我以两种格式保存文件(一个是JSON,另一个是文本(没有扩展名)),并有2个按钮用于打开它们。
在升级版工具中,我删除了文本格式的保存。现在我不想要2个按钮来加载2个不同的文件,我希望这两个文件都加载相同的按钮。
如何做到这一点,因为一个文件有“.json”扩展名,而其他文件没有任何扩展名。
我知道的一种方法是检查文件扩展名(这是标准方式吗?)
还有其他方法吗?
这样做的pythonic方式是什么?
答案 0 :(得分: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
答案 1 :(得分: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?
答案 2 :(得分:1)
import os
if os.path.splitext('file.json')[1] == '.json':
#it's a json file
else:
#it's not a json