2013-06-28 37 views
0

我是python的新手,我想知道這行指令中出了什麼問題。 在例子中使用該行代碼爲subprocess Python的文檔中:在call()函數中處理「ls」參數的子進程錯誤

subprocess.call(["ls", "-l"]) 

,並基本恢復:

WindowsError: [Error 2] The system cannot find the file specified 

的Python認爲,「LS」是一個文件,而不是一個參數。有沒有辦法解決這個問題?

+1

ls不是Windows原生命令。 –

回答

1

是的。改爲使用["dir", "/w"]['ipconfig', '/all']

+0

cmd.exe中是'dir'內部(內置)命令嗎?內置命令可以在沒有'shell = True'的情況下執行嗎? – jfs

+0

@ J.F.Sebastian:看來它不能。 –

3

是否需要撥打ls(或dir)命令?在Python中,您可以使用os.listdir(path)列出目錄的文件,這將更容易實現!

關於你的問題:你正試圖調用ls命令,這是類Unix系統的原生命令。在Windows中,您必須使用dir,正如Ignacio的答案中所示。

+0

當然沒有必要。但它是一個體面的例子(當你使用在你的操作系統上發現的命令)。 –