我試圖建立一個功能,將允許重複此(它可以防止控制檯從開口窗戶):問題與等號和功能參數
if platform.system() == 'Windows':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
subprocess.call(['myprogram.exe', '-P', arg],
stdout=someFile, startupinfo=startupinfo)
else:
subprocess.call(['myprogram.exe', '-P', arg], stdout=someFile)
所以我定義瞭如下功能:
def noWinConsole(program):
if platform.system() == 'Windows':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
subprocess.call(program, startupinfo=startupinfo)
else:
subprocess.call(program)
但是,當我這樣稱呼它noWinConsole(['myprogram.exe', '-P', arg], stdout=someFile)
,我得到的,因爲stdout=somefile
的錯誤:
TypeError: noWinConsole() got an unexpected keyword argument 'stdout'
我該如何解決這個問題?
謝謝你的回答,我更新了更正後的代碼的問題,確實你覺得合適嗎? – yaka
@ yaka好像它會適用於你的用例,是的。儘管稍後可能會對第一個參數使用單星解壓縮更清晰。另外,通常不贊成編輯一個問題的答案;它爲未來的訪客們揣測事情。所以你應該刪除它。很高興我能夠幫助! –
@eryksun確實!我實際上考慮在這裏增加一個提到'partial',但是我決定反對它,因爲它與提問者確實需要回答的問題有點接近(「爲什麼Python不會自動將任意數量的參數打包到單個參數中什麼是功能簽名「)。 –