简体   繁体   中英

Cross platform code in python

How can I write in python some windows code to execute only when I am running the script in widnows, if I should run it in linux, that part of the windows code should be ignored, something simillar to this, in C++:

#ifdef windows
  //code
#endif

#ifdef linux
//code
#endif

I tried something like this in python:

if os.name = 'nt':
   #code

But in linux it gives me an error(I am using STARTF_USESHOWWINDOW, witch gives error).

startupinfo = None
if sys.platform == 'win32':
    startupinfo = subprocess.STARTUPINFO()
    startupinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW #error here
    startupinfo.wShowWindow = _subprocess.SW_HIDE # error here

Traceback (most recent call last):
  File "/home/astanciu/workspace/test/src/main.py", line 10, in <module>
    import _subprocess
ImportError: No module named _subprocess

在Python中比在C中要少得多的地方检查平台是必要的。如果你真的必须这样做,首选的方法是检查sys.platform而不是os.name

You can have conditional code based on the value of os.name using the correct comparison operator ( == ):

if os.name == 'nt':
   #code

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM