質問内容
ファイルを開いた後に、種別を判断したいのですが、スマートな方法はないでしょうか?

やりたいこと
とあるデータをバイナリ形式とテキスト形式のどちらでも受け付けるようにしたいです。
例えば、"F0FFFFFF000102"といったデータをバイナリ形式でもテキスト形式でも読み取りたい場合、以下のようなコードでファイルを開きます。

path = filedialog.askopenfilename(initialdir = "/" ,title = "Select file",filetypes = (("binary files","*.bin"),("text files","*.txt"),("all files","*.*")))
fp = open(path,'rb')
data = fp.read()

テキスト形式の場合、dataの中身は、

data: b'f0ffffff000102

バイナリ形式の場合、dataの中身は、

data: b'\xf0\xff\xff\xff\x00\x01\x02

そこで、文字列に変換して、'\x'を取り除けば、どちらの形式でも同じデータになると考えました。

sdata = data.decode()
data = sdata.strip('\x')

しかし、バイナリ形式では、data.decode()の時点で、uft-8ではないため、エラーが発生します。
何か良い方法はないでしょうか。

使用している環境
OS: Windows10 Pro
IDE: VisualStudioCode バージョン: 1.36.1 (user setup)