/ / Ako rozlišovať dva typy súborov v Pythone 2.7? - python, python-2.7, súbor-io

Ako rozlišovať medzi dvomi rôznymi typmi súborov v Pythone 2.7? - python, python-2.7, súbor-io

Mám nástroj, v ktorom môžem uložiť súbor v dvoch formátoch (jeden je JSON a druhý je text (bez prípony)) a majú dve tlačidlá na otvorenie.

V inovovanej verzii nástroja som odstránil ukladanie textového formátu. A teraz nechcem 2 tlačidlá pre načítanie 2 rôznych súborov, chcem, aby oba súbory boli načítané rovnakým tlačidlom.

Ako to možno urobiť, pretože jeden súbor má príponu ".json" a iný súbor nemá žiadne rozšírenie.

1 metóda Viem, je skontrolovať príponu súboru (je to štandardná cesta?)

Akékoľvek iné spôsoby?

Aký je pytónický spôsob, ako to urobiť?

odpovede:

2 pre odpoveď č. 1

Áno, môžete skontrolovať rozšírenie. použitie endswith

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

Alebo môžete skontrolovať samotný obsah súboru.

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

2 pre odpoveď č. 2

Dva prístupy, ktoré môžete využiť:


použitie os.splitext určiť, či je rozšírenie "json":

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

alebo vyskúšať analyzovať ako json, analyzujte inak, ak to zlyhá:

try:
data = json.loads(contents)
except ValueError:
data = parse_text()  # your custom function i guess?

1 pre odpoveď č. 3
import os
if os.path.splitext("file.json")[1] == ".json":
#it"s a json file
else:
#it"s not a json