如何使用python重命名目录中的文件

时间:2015-07-04 17:22:40

标签: python file python-2.7

我有一个名为" x.mkv"的文件。在名为" export"的文件夹中。 X可以是任何东西......它没有完全命名为X,它只是带有一些名字的文件。 我想将文件重命名为" Movie1 x [720p] .mkv"。我想保留文件的原始名称,并将Movie1添加为前缀,将[720p]添加为后缀。 文件夹中只有一个文件,仅此而已。 我该怎么办? 我尝试在os.rename中使用变量而我失败了......这就是我使用的:

import os
w = os.listdir("C:/Users/UserName/Desktop/New_folder/export")
s = '[Movie1]' + w + '[720p]'
os.rename(w,s)

我想要做的是......从文件夹中获取文件名,因为它只有1个文件,因此,这似乎是合适的。 将获取结果保存在' w'然后使用另一个变量'并添加前缀和后缀。然后在最后,我无法使用' os.rename'命令。

2 个答案:

答案 0 :(得分:2)

您的原创作品因某些原因而失败:

  1. os.listdir()返回一个列表而不是字符串,因此字符串连接将失败。
  2. 除非提供路径或您更改了密码,否则
  3. os.rename()将无法重命名文件。
  4. 我建议使用以下代码:

    import os
    path="C:/Users/UserName/Desktop/New_folder/export/"
    w = os.listdir(path)
    #since there is only one file in directory it will be first in list
    #split the filename to separate the ext from the rest of the filename
    splitfilename=w[0].split('.')
    s = '[Movie1]' + '.'.join(splitfilename[:-1]) + '[720p].'+splitfilename[-1]
    os.rename(path+w[0],path+s)
    

答案 1 :(得分:0)

使用os.rename

def my_rename(path, name, extension, prefix, suffix):
    os.rename(path + '/' +          old_name          + '.' + extension,
              path + '/' + prefix + old_name + suffix + '.' + extension)

my_rename('/something/export', 'x', 'mkv', 'Movie1 ', ' [720p]')