如果我在widnows中运行脚本时,如何在python中编写一些windows代码,如果我应该在linux中运行它,那么应该忽略那部分windows代码,这与C ++相似:
#ifdef windows
//code
#endif
#ifdef linux
//code
#endif
我在python中尝试过类似的东西:
if os.name = 'nt':
#code
但是在linux中它给了我一个错误(我使用的是STARTF_USESHOWWINDOW,这会给出错误)。
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
答案 0 :(得分:7)
在Python中比在C中要少得多的地方检查平台是否必要。如果你真的必须这样做,首选的方法是检查sys.platform
而不是os.name
。
答案 1 :(得分:3)
您可以使用正确的比较运算符(==
)基于os.name
的值设置条件代码:
if os.name == 'nt':
#code