繁体   English   中英

如何在python 2.7中区分两种不同类型的文件?

[英]How to differentiate between two different type of files in python 2.7?

我有一个工具可以将文件保存为2种格式(一种是JSON,另一种是文本(不带扩展名)),并具有2个用于打开它们的按钮。

在工具的升级版本中,我删除了保存文本格式的操作。 现在我不想要2个按钮来加载2个不同的文件,我希望两个文件都用相同的按钮加载。

因为一个文件具有“ .json”扩展名,而另一个文件没有任何扩展名,该如何完成。

我知道的一种方法是检查文件扩展名(这是标准方法吗?)

还有其他方法吗?

这样做的python方式是什么?

是的,您可以只检查扩展名。 使用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 ,如果失败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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM