Untuk menjawab pertanyaan dalam judul Anda tetapi bukan kasus tertentu yang Anda berikan, itu benar sekali, banyak paket melakukan ini. Mungkin lebih baik untuk mencari tahu OS sendiri daripada mengandalkan pengguna; inilah pySerial melakukannya sebagai contoh.
serial/__init__.py
import sys
if sys.platform == 'cli':
from serial.serialcli import Serial
else:
import os
if os.name == 'nt':
from serial.serialwin32 import Serial
elif os.name == 'posix':
from serial.serialposix import Serial, PosixPollSerial, VTIMESerial
elif os.name == 'java':
from serial.serialjava import Serial
else:
raise ImportError(
"Sorry: no implementation for your platform ('{}') available".format(
os.name
)
)
Ini harus digunakan hanya dalam kasus di mana Anda berasumsi dan membutuhkan jaminan kuat bahwa antarmuka / fitur tertentu akan ada di sana: misalnya 'file' dipanggil /dev/ttyX. Dalam kasus Anda: berurusan dengan JSON, tidak ada yang benar-benar spesifik untuk OS dan Anda hanya memeriksa apakah paket tersebut ada atau tidak. Dalam hal ini, cukup tryuntuk mengimpornya, dan kembali dengan exceptjika gagal:
try:
import some_specific_json_module as json
except ImportError:
import json
platform.platform()atauplatform.system()harus melakukan apa yang Anda butuhkan, daripada meminta pengguna untuk memasukkan sesuatu setiap kali kode dijalankan.