2011-06-02 186 views
-1

我使用getopt來解析選項和參數。 我寫了一個批處理文件來調用python腳本,所以我不必一遍又一遍地輸入相同的命令。Python:getopt,批處理文件和帶空格的路徑

當我打印出參數列表時,路徑被分割爲空格,並且每個都被分別解析。

該路徑被括在雙引號中,但我不確定問題是什麼。它是批處理文件,還是getopt不把它視爲一個字符串?

如果是這樣,我可以使用哪些替代方法來正確解析選項和參數(尤其是帶空格的路徑)?

編輯:nvm,發現問題。我在批處理文件的循環變量中加了雙引號(即:「%% X」)。它已經有了雙引號,所以當我把我自己的雙引號本身不再是單一的字符串=(

+3

'getopt'已經過時了。你應該使用'運tparse'或更新的'argparse' for 2.6及更高版本 – JBernardo 2011-06-02 00:22:46

+1

我會補充說optparse/argparse非常易於使用且非常強大。 – dusktreader 2011-06-02 01:07:33

回答

1

我們需要看到的代碼,以確保但要確保你引述的說法到處不只是路徑在命令行中。

命令行...

$script.sh "/my/path with/spaces" 

bash腳本...

#!/bin/bash 
python /path/to/script "$1" 
+0

由於這是一個批處理文件,我相信我已經引用了所有內容,因爲它從命令行直接傳遞給腳本。 – MxyL 2011-06-02 00:31:35

+0

@Keikoku:因爲它不起作用,所以有證據表明你可能沒有引用**所有內容**。 – 2011-06-02 01:52:38

相關問題