我有几个文件名,其名称类似于:201810160820。我想将名称更改为date + time,因此该文件将重命名为:16/10/2018 08:20。
我编写了以下代码:
#!/usr/bin/python
import os
os.chdir('/root/Desktop/calls')
for name in os.listdir('.'):
newname = name[len(name)-6:len(name)-4]+'/'+name[len(name)-8:len(name)-6]+'/'+name[len(name)-12:len(name)-8]+' '+name[len(name)-4:len(name)-2]+':'+name[len(name)-2:len(name)]
os.rename(name, newname)
我收到一个错误:[Errno 2]没有这样的文件或目录 我在使用kali linux的python 2.7上编写此代码。 文件已经存在,如果不执行循环,则可以更改文件名。 问题出在哪里?
答案 0 :(得分:0)
os.listdir()
仅返回文件名,而不返回路径名。您应该使用os.path.join
将目录名与文件名连接起来,以便os.rename
找到它们:
dir = '.'
for name in os.listdir(dir):
newname = name[len(name)-6:len(name)-4]+'-'+name[len(name)-8:len(name)-6]+'-'+name[len(name)-12:len(name)-8]+' '+name[len(name)-4:len(name)-2]+'-'+name[len(name)-2:len(name)]
os.rename(os.path.join(dir, name), newname)
请注意,文件名不能包含'/'
或':'
,因此您应使用-
之类的分隔符。