File 通过使用Python 2.7.8将字符串添加到字符串列表来重命名目录中的文件

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

在删除文件名的最后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)
    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]当文件已经存在时无法创建文件