0

这是定义变量的地方,现在它应该作为参数 a (directory,filename,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)
4

2 回答 2

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')
于 2012-06-28T20:54:54.787 回答
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)
于 2012-06-28T21:15:17.250 回答