我有一個Python腳本,它使用'Argparser'從命令行接受參數。這是我指定特定文件的位置的地方。然後,我調用安裝在我的盒子上的另一個命令行工具,並將該文件的該位置傳遞給該工具。爲了運行,該工具需要創建一個輸出目錄。Python子流程模塊:「無法創建目錄」
現在,我的問題是,它自己的工具沒有問題,在我指定的位置創建輸出目錄。例如:#tool -o ~/output filelocation'
會導致該工具從文件位置讀取文件,並在我的主文件夾中創建一個名爲'output'的目錄來存儲結果。但是,當我使用調用子進程模塊同樣的事情在Python,它給了我一個錯誤:
subprocess.call(['tool', '-o ~/output', args.filelocation])
這導致:
Could not make directory ~/output
我運行所有這一切都以root權限。我不知道爲什麼這個'工具'不能通過子進程模塊調用時創建一個目錄。任何幫助,將不勝感激。
編輯:它給了我即使我使用絕對路徑相同的錯誤。比如,我用:
subprocess.call(['tool', '-o /root/output', args.filelocation])
結果:
Could not make directory /root/bulk
它的工作原理=真'? – SethMMorton 2015-03-02 15:57:12
另外,你應該像這樣構造參數:'['tool','-o','〜/ output',args.filelocation]'。所有以空格隔開的內容都應該是命令列表中的新元素。這可能是問題所在。 – SethMMorton 2015-03-02 15:58:29
擁有root權限並非(必然)與「root」相同。 – 2015-03-02 16:14:45