2016-10-31 41 views
0

所以我工作的一個腳本的最佳方式,也可以稱爲:的Python:什麼是傳遞一個多字的字符串來

python script.py OOPS Programming myfile.txt 

這裏OOPS Programming是一個單一的參數,它也可能是一個字,例如; OOPS。我知道雙引號可以用來傳遞一個參數,有更好的還是Pythonic?

感謝

+7

這有什麼好做的Python,它是所有關於殼...如果你有特定的限制,告訴你句子開始和結束的地方,你可以用Python解析它。但是,處理這個問題的實際和最pythonic方法是實際上將它作爲一個參數傳遞,shell要求您使用引號。 – deceze

+1

我已經刪除了'python'標籤並添加了'shell'。 – ray

+0

我投票結束這個問題作爲題外話,因爲它是一個關於如何在shell中引用字符串的XY問題,除非進一步澄清,否則這個問題太廣泛了。 –

回答

0

要通過OOPS Programming作爲一個參數,把引號的:

python script.py 'OOPS Programming' myfile.txt 

在shell,參數命令用空格隔開。當您執行任何程序時,包含參數的字符串將在空白處分割並作爲參數列表傳遞給程序。

引號可以防止shell拆分這部分字符串。

沒有報價,沒有辦法爲外殼之間「OOPS」和「編程」和「編程」和「myfile.txt的」之間的一個空間區分,所以每個字變成一個單獨的參數列表。

使用引號,您的Python程序將字符串「OOPS編程」視爲單個參數,因此您無需任何特殊的操作就可以一次性訪問它。

這裏有一個簡單的Python腳本演示:

import sys 

for index, arg in enumerate(sys.argv): 
    print(index, arg) 

從貝,調用和不帶引號:

$ python3 script.py OOPS Programming myfile.txt 
0 script.py 
1 OOPS 
2 Programming 
3 myfile.txt 
$ python3 script.py 'OOPS Programming' myfile.txt 
0 script.py 
1 OOPS Programming 
2 myfile.txt 
相關問題