Bagaimana cara menerjemahkan kode keluar os Python ke string yang setara?

Sebagai contoh,

>>> import os
>>> os.EX_OSERR
71

Saya ingin mengambil bilangan bulat 71 dan mendapatkan nama 'EX_OSERR'.

Saya tidak ingin bersusah payah membuat segala jenis pencarian untuk setiap nilai. Saya mencari solusi menggunakan bawaan Python, atau metode dalam modul standar, jika memungkinkan.

Saya tertarik dengan solusi untuk python 2.X.

1
jersey bean 9 Agustus 2017, 06:35

2 jawaban

Jawaban Terbaik

Satu-satunya solusi yang saya buat adalah membuat kamus pencarian:

import os
osexit_dict = {}
for exit_name  in [x for x in dir(os) if x.startswith('EX')]:
   exit_num = getattr(os, exit_name)
   osexit_dict[exit_num] = exit_name

Meskipun ini tidak sepenuhnya memenuhi pertanyaan, karena ini membuat pencarian (meskipun mudah dilakukan).

Mungkin orang lain dapat menemukan cara untuk menggunakan built-in Python.

1
jersey bean 17 Agustus 2017, 16:53

Saya tidak suka ini tetapi ini akan berhasil.

d = {attrgetter(value)(os) : value for value in dir(os) if value.startswith('EX')}
1
Rahul 18 Agustus 2017, 03:44