Python:将多字符串作为参数传递的最佳方法是什么

时间:2016-10-31 14:14:26

标签: shell

所以我正在编写一个可以被称为的脚本:

python script.py OOPS Programming myfile.txt

这里OOPS Programming是一个单一的参数,也可以是一个单词,e:g; OOPS。我知道双引号可以用来传递一个参数,有更好的还是Pythonic?

谢谢

1 个答案:

答案 0 :(得分:0)

要将OOPS Programming作为单个参数传递,请在其周围加上引号:

python script.py 'OOPS Programming' myfile.txt

在shell中,命令的参数由空格分隔。执行任何程序时,包含参数的字符串将在空白处分割,并作为参数列表传递给程序。

引号会阻止shell分割字符串的这一部分。

如果没有引号,shell就无法区分" OOPS"和"编程" "编程"和" myfile.txt",所以每个单词在列表中成为一个单独的参数。

使用引号,您的Python程序会看到字符串" OOPS Programming"作为一个论点,所以你不需要任何特殊的东西一次性访问它。

这是一个简单的python脚本来演示:

import sys

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

在shell中,使用和不使用引号调用:

$ 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
相关问题