我是python的新手,基本上尝试发送一个list参数并使用python
打印它 import unittest
import sys
class TestStringMethods():
def test_upper(self, input_list):
print input_list
if __name__ == '__main__':
input_list = sys.argv[1]
test_upper(input_list)
我应该如何从命令行提供输入?我试过这个
python test.py 1,2,3
python test.py test_upper: input_list=[1,2,3]
python test.py TestStringMethods.test_upper: input_list=[1,2,3]
没有任何效果
答案 0 :(得分:1)
jonrsharpe已在评论中指定了此方法。
这是实现目标的最简单方法。
您可以将由空格分隔的输入数字作为命令行参数。
这可以避免使用split
函数
代码
import sys
input_list = sys.argv[1:]
print (input_list)
输出
python3 script.py 1 2 3 4 5
['1', '2', '3', '4', '5']
修改代码
import unittest
import sys
class TestStringMethods:
def __init__(self):
pass
def test_upper(self, input_list):
print (input_list)
input_list = sys.argv[1:]
c=TestStringMethods()
c.test_upper(input_list)
输出
python3 script.py 1 2 3 4 5
['1', '2', '3', '4', '5']
答案 1 :(得分:0)
这应该有用!!
if __name__ == '__main__':
string_input = sys.argv[1]
input_list = string_input.split(",") #splits the input string on spaces and comma
# process string elements in the list and make them integers
input_list = [int(a) for a in input_list]
test_upper(input_list)
只是为了测试这个想法是否有效。
在空闲状态或您正在使用的任何IDE中运行以下代码。我假设你使用的是python 2.7
string_input = "1, 2, 3"
input_list = string_input.split(",") #splits the input string on spaces and comma
# process string elements in the list and make them integers
input_list = [int(a) for a in input_list]
print input_list