簡體   English   中英

python中的跨平台代碼

[英]Cross platform code in python

我怎么能在python中編寫一些windows代碼才能在widnows中運行腳本時執行,如果我應該在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

在Python中比在C中要少得多的地方檢查平台是必要的。如果你真的必須這樣做,首選的方法是檢查sys.platform而不是os.name

您可以使用正確的比較運算符( == )根據os.name的值獲得條件代碼:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM