我跑你的代码,有以下两个主要问题:
第一个是,你是不是在你的os.rename
线关闭您的支架。
你有这样的:
os.rename(str(lijstmetfiles[i]), str("doggy"+str(i))
你缺少一个括号,所以应该是:
os.rename(str(lijstmetfiles[i]), str("doggy"+str(i)))
然而,这可能是一个编辑的问题,从您的帖子在复制你的代码。
其次,最重要的是,你没有指定你要重命名的路径,你只是给出两个文件名,所以你最有可能得到一个文件未找到错误。
您需要利用使用您的目录和文件名,Python的os.path.join
方法如下面的代码样本:
os.rename(
os.path.join(directoryname, str(lijstmetfiles[i])),
os.path.join(directoryname, str("doggy"+str(i)))
)
所以,现在你明确指定的完整路径是什么,你的重命名。
另一个要点是,你不需要为你的文件名转换为“str”。例如,即使您的文件名为5
,从listdir
获取文件列表仍然会以字符串形式返回。
最后,把他们放在一起,你的代码应该是这个样子:
import os
directoryname="C:\\Users\\Ineke\\Documents\\Python Scripts\\images"
lijstmetfiles = os.listdir(directoryname)
print(lijstmetfiles)
for i in range(len(lijstmetfiles)):
os.rename(
os.path.join(directoryname, lijstmetfiles[i]),
os.path.join(directoryname, "doggy"+str(i))
)
我测试了我的结束,它应该工作。
这是关于os模块的文档。看看它获得与文件系统玩的时候什么是提供给您进一步的理解:
的Python 2:https://docs.python.org/2/library/os.html
的Python 3:https://docs.python.org/3/library/os.html
如果你张贴明显的例子这将是有益的输入名称和预期的输出名称。 – wflynny
那么你现在的代码实际上做了什么*?! – jonrsharpe
另外:'对于范围内的我(len(LIST))'是[* code smell *](https://en.wikipedia.org/wiki/Code_smell)或[*反模式*](https:/ /en.wikipedia.org/wiki/Anti-pattern)。它通常可以用'for i in LIST'取代。 –