python sys.argv in 类 name.py [整数列表 2, 4,..], 整数
python sys.argv in classes name.py [list of integers 2, 4,..], integer
我想在终端中传递 2 个参数,一个作为列表 [8, 10],另一个作为整数。
文件 MySeq.py
赞:MySeq.py [8, 10], 32
我该怎么做?
import sys
class MySeq():
def __init__(self, positions, length):
self.positions = positions
self.length = length
def length_fragments(self):
diffs = []
diffs.append(self.positions[0])
for i in range(1, len(self.positions)):
diffs.append((self.positions[i] - self.positions[i - 1]))
diffs.append(self.length - self.positions[len(self.positions) - 1])
return diffs
#positons = sys.argv[1].replace('[', ' ').replace(']', ' ').replace(',', ' ').split()
#positions = [int(i) for i in a]
#length = int(sys.argv[2])
print(MySeq(positions, length).length_fragments())
一种方法是像这样传递参数:
$ python filename.py 30 50 13
代码如下:
import sys
int_arg = int(sys.argv[-1])
list_from_args = list(sys.argv[1:-1])
for i in range(len(list_from_args)):
list_from_args[i] = int(list_from_args[i])
这意味着参数 30 50
将被转换为 python 列表对象(包含 int)并且最后一个参数(在本例中为 13
)将被处理作为一个整数。
运行
python MySeq.py 8,10 32
因为sys.argv自动是一个字符串列表,所以用逗号分割成一个列表就可以了。
def __init__(self):
self.positions = sys.argv[1].split(',') # 8,10 to ['8', '10']
self.length = int(sys.argv[2]) # 32
我想在终端中传递 2 个参数,一个作为列表 [8, 10],另一个作为整数。 文件 MySeq.py
赞:MySeq.py [8, 10], 32 我该怎么做?
import sys
class MySeq():
def __init__(self, positions, length):
self.positions = positions
self.length = length
def length_fragments(self):
diffs = []
diffs.append(self.positions[0])
for i in range(1, len(self.positions)):
diffs.append((self.positions[i] - self.positions[i - 1]))
diffs.append(self.length - self.positions[len(self.positions) - 1])
return diffs
#positons = sys.argv[1].replace('[', ' ').replace(']', ' ').replace(',', ' ').split()
#positions = [int(i) for i in a]
#length = int(sys.argv[2])
print(MySeq(positions, length).length_fragments())
一种方法是像这样传递参数:
$ python filename.py 30 50 13
代码如下:
import sys
int_arg = int(sys.argv[-1])
list_from_args = list(sys.argv[1:-1])
for i in range(len(list_from_args)):
list_from_args[i] = int(list_from_args[i])
这意味着参数 30 50
将被转换为 python 列表对象(包含 int)并且最后一个参数(在本例中为 13
)将被处理作为一个整数。
运行
python MySeq.py 8,10 32
因为sys.argv自动是一个字符串列表,所以用逗号分割成一个列表就可以了。
def __init__(self):
self.positions = sys.argv[1].split(',') # 8,10 to ['8', '10']
self.length = int(sys.argv[2]) # 32