[Python-Dev] Recommended way to tell platform (original) (raw)

Guido van Rossum guido at python.org
Sat Aug 7 23:11:08 CEST 2004


[Guido] > This does bring up an interesting question: what's the recommended > way to distinguish a certain platform? There's os.name, > sys.platform, the platform module, and I've also seen code testing > for os.sep=='/'.

[Tim]

I ask myself that question every time I need to do it. Out of sheer momentum now, I almost always use

if sys.platform in ('win32',):

Why the 'in singleton tuple'? Still holding out for that compiler optimization that promises to make tuples of constants code constants themselves?

I dislike using os.name == 'nt', mostly because if we asked all Windows Python users which OS they use, only a tiny percentage would answer "NT". Since NT is a dying OS, 'nt' is an increasingly odd-looking thing to test agaist.

And so is 'posix' when you're looking at Linux. :-)

We can't change these values easily so they will look odder and odder as time progresses.

OTOH, I have no idea when or why sys.platform == "win32" would give a different result than os.name == "nt".

Maybe on cygwin? I really don't know.

--Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list