我有 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/