[英]how to rename file in a directory using python
我在名为“ export”的文件夹中有一个名为“ x.mkv”的文件。 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)
我想做的是...从文件夹中获取文件名,因为这里只有一个文件,因此,这似乎很合适。 将提取结果保存为“ w”,然后使用另一个变量“ s”并添加前缀和后缀。 然后最后,我无法在' os.rename
'命令中使用变量。
您的原件由于以下几个原因而无法使用:
os.listdir()
返回一个列表,而不是一个字符串,因此您的字符串连接将失败。 os.rename()
将无法重命名文件。 我建议以下代码:
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)
使用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]')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.