File 通过使用Python 2.7.8将字符串添加到字符串列表来重命名目录中的文件
在删除文件名的最后10个字符后,我试图将文件扩展名添加回文件路径和文件名 迄今为止的代码:File 通过使用Python 2.7.8将字符串添加到字符串列表来重命名目录中的文件,file,concatenation,rename,File,Concatenation,Rename,在删除文件名的最后10个字符后,我试图将文件扩展名添加回文件路径和文件名 迄今为止的代码: rootDir = "C\\Users\\Documents\\New" for root, dirs, filenames in os.walk(rootDir): for fileys in filenames: fullpath = os.path.join(root, fileys) filesplit = os.path.splitext(fullpath) filee
rootDir = "C\\Users\\Documents\\New"
for root, dirs, filenames in os.walk(rootDir):
for fileys in filenames:
fullpath = os.path.join(root, fileys)
filesplit = os.path.splitext(fullpath)
fileext = filesplit
os.rename(fullpath, fullpath[:-5] + fileext) #line that has error
我的错误是:
回溯(最近一次呼叫最后一次):
文件“C:/Users/Student/Downloads/App.py”,第28行,在
重命名(fullpath,fullpath[:-10]+(fullpath中s的s+fileext))
TypeError:无法连接“str”和“generator”对象
我发现问题在于我试图连接字符串和生成器,但当我尝试时:
os.rename (fullpath, fullpath[:10] + fileext)
我收到的错误是无法连接元组和字符串
那么,在重命名文件时删除文件名的最后10个字符后,如何将文件扩展名添加到完整路径
谢谢
fileext=filesplit
看起来很可疑os.path.splitext()
返回文件名和扩展名的元组。也许您想要fileext=filesplit[1]
在那里。另外,fullpath[:-5]
正在原始的fullpath
上运行,扩展名仍然附加,这可能不是您想要的。也许创建新名称所需的是filesplit[0][:-5]+filesplit[1]
?因此我尝试了以下方法:新代码:在os.walk(rootDir)中为root、dir、filenames创建文件名:fullpath=os.path.join(root、fileys)filesplit=os.path.splitext(fullpath)fileext=filesplit[1]rename(完整路径,filesplit[0][:-5]+filesplit[1])但是,它仍然不起作用。我得到的错误是:回溯(上次的最新调用):文件“C:/Users/Student/Downloads/App.py”,第28行,在os.rename(完整路径,filesplit[0][:-5]+filesplit[1])窗口错误:[Error 183]当文件已经存在时无法创建文件