gpt4 book ai didi

python - 如何解决 "TypeError: list indices must be integers or slices, not str"

转载 作者:行者123 更新时间:2023-12-01 21:31:39 33 4
gpt4 key购买 nike

我有 2 个文件要从一个文件夹复制到另一个文件夹,这些是我的代码:

import shutil

src = '/Users/cadellteng/Desktop/Program Booklet/'
dst = '/Users/cadellteng/Desktop/Python/'
file = ['AI+Product+Manager+Nanodegree+Program+Syllabus.pdf','Artificial+Intelligence+with+Python+Nanodegree+Syllabus+9-5.pdf']

for i in file:
shutil.copyfile(src+file[i], dst+file[i])

当我尝试运行代码时,收到以下错误消息:

/Users/cadellteng/venv/bin/python /Users/cadellteng/PycharmProjects/someProject/movingFiles.py
Traceback (most recent call last):
File "/Users/cadellteng/PycharmProjects/someProject/movingFiles.py", line 8, in <module>
shutil.copyfile(src+file[i], dst+file[i])
TypeError: list indices must be integers or slices, not str

Process finished with exit code 1

我试图在 stackoverflow 上找到一些解决方案,有一个线程建议这样做:

for i in range(file):
shutil.copyfile(src+file[i], dst+file[i])

然后我收到以下错误消息:

/Users/cadellteng/venv/bin/python /Users/cadellteng/PycharmProjects/someProject/movingFiles.py
Traceback (most recent call last):
File "/Users/cadellteng/PycharmProjects/someProject/movingFiles.py", line 7, in <module>
for i in range(file):
TypeError: 'list' object cannot be interpreted as an integer

Process finished with exit code 1

所以现在我彻底困惑了。如果“i”不能是字符串也不能是整数,那么它应该是什么?我正在使用 PyCharm CE,对 Python 还很陌生。

最佳答案

只需使用以下代码,因为 i 不需要额外的索引 file[...],因为它不是索引:

for i in file:
shutil.copyfile(src + i, dst + i)

如果您想使用range,请与len一起使用:

for i in range(len(file)):
shutil.copyfile(src+file[i], dst+file[i])

但当然第一个解决方案是首选。

关于python - 如何解决 "TypeError: list indices must be integers or slices, not str",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59745214/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com