因此,我在macOS上制作了一个脚本,并与一些朋友一起分发了该脚本。
但是,使用Windows的朋友向我抱怨说该脚本不适用于他们。
果然,我在分区上安装了Windows并运行了我的脚本,但它不起作用。
每个人都有同样的错误。
data[k+1][16] = 0
IndexError: list assignment index out of range
这是代码部分失败的示例
df = pd.read_csv("passandpy.csv", usecols=[16], skipinitialspace=True)
col16 = df['Failed Attempts'].tolist()
data = [line for line in csv.reader(open('passandpy.csv'))]
data[k+1][16] = 0
csv.writer(open('passandpy.csv', 'w')).writerows(data)
应该发生的是,从csv文件中读取了列16,并将其转换为列表。然后,创建另一个名为data的列表,并将csv中的所有行写入该列表中。我编辑该列表中的值,然后将列表保存回csv。
我还要提到的一件事是,一旦该脚本在Windows上运行,它也将不再在macOS上运行。
删除Windows上创建的csv文件并使用macOS使用脚本生成一个文件后,该脚本将再次起作用。
好吧,我发现了问题。
在Windows上,它正在向.csv文件中写入多余的空行。这导致列表索引停止工作。
我用这段代码修复了它。
data = []
lines = [line for line in csv.reader(open('passandpy.csv','r'))]
for line in lines:
if line == []:
continue
它过滤空白行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句