Проблема, с которой вы сталкиваетесь, заключается в том, что когда вы передаете список в качестве аргумента командной строки без кавычек, питон читает каждое значение, разделенное запятыми, как один аргумент.Просто оберните кавычки вокруг строки, как показано ниже
main.py file:
import sys
import ast
print sys.argv[1]
print type(ast.literal_eval(sys.argv[1]))
, передавая не строку в качестве аргумента:
>>> import os
>>> os.system("python main.py '%s'"%[1,2])
[1, 2]
<type 'list'>
0
Передача спискаили в качестве переменной:
>>> a = [1,2]
>>> os.system("python main.py '%s'"%a)
[1, 2]
<type 'list'>
0
>>> dic = {1:2,2:3}
>>> os.system("python main.py '%s'"%dic)
{1: 2, 2: 3}
<type 'dict'>
0
РЕДАКТИРОВАТЬ :
Альтернативное решение: использование формата строки
>>>a = [1,2]
>>> os.system("python main.py '{}'".format(a))
[1, 2]
<type 'list'>
0
Надеюсь, это поможет