如何为使用sys.arg时获取的3个参数设置变量

时间:2012-06-28 19:26:36

标签: python variables arguments

这是定义变量的地方,现在它应该作为参数a(目录,文件名,slicesize)接收,但当我插入它时,给我一个“列表索引超出范围”的错误,是吗这段代码中出了什么问题?或者我是否错误地称呼它?

if __name__=="__main__":
    dirname = sys.argv[1]
    filename = sys.argv[2]
    slicesize = int(sys.argv[3])
    sort_big_text_file(dirname,filename,slicesize)




sort_big_text_file('C:/Python/','dotcom_data.txt', 100000)

2 个答案:

答案 0 :(得分:1)

数组通常从索引0开始。您的意思是使用

if __name__=="__main__":
  dirname = sys.argv[0]
  filename = sys.argv[1]
  slicesize = int(sys.argv[2])
  sort_big_text_file(dirname,filename,slicesize)  

你有3个参数吗?你可以使用

检查
if len(sys.argv) < 3:
  sys.stderr.write('error: not enough arguments')

答案 1 :(得分:0)

我正在做的问题是我在最后执行时调用了函数,而且应该在最后一个函数之前出现,我相信你会称之为main。所以,而不是我做的,像这样:

sort_big_text_file('C:/Python/','com_data.txt', 100000)

if __name__=="__main__":
    dirname = sys.argv[1]
    filename = sys.argv[2]
    slicesize = int(sys.argv[3])
    sort_big_text_file(dirname,filename,slicesize)