2014-10-10 62 views
0

我在我的Mac上的目录中有大量视频,它们都有我想要删除的文件名中的特定字符串,但我想保留文件名的其余部分。我从终端运行这个python脚本。Python文件名更改

我有这个语法,但它似乎并没有工作。使用以下内容是否实用?这似乎很容易成为做这种事情的最佳方式,这就是为什么我认为它不起作用。

from os import rename, listdir 

text = "Some text I want to remove from file name" 
files = listdir("/Users/Admin/Desktop/Dir_of_videos/") 

for x in files: 
    if text in files: 
     os.rename(files, files.replace(text, "")) 

回答

1

的问题是,你会得到不完整路径当您使用listdir,基本上,它在目录中没有预谋路径仅返回文件的目录

本应该做的工作:

import os 

in_dir = './test' 
remove = 'hello' 

paths = [os.path.join(in_dir,file) for file in os.listdir(in_dir) if remove in file] 

for file in paths: 
    os.rename(file, file.replace(remove, "")) 
+0

是的,这没关系。谢谢:)你能解释一下“文件”吗?它是否真的告诉脚本使用这个“文件”? – 2014-10-10 16:45:22

+0

'file'就是这里的迭代器,例如,当我做'os.listdir('./ test')','file'就是例如'planet.png'或者'world.png' – Sebastian 2014-10-10 16:47:38

+0

你可以插入一个'print(paths)'来查看路径的样子,并将它们与'os.listdir('./ test')进行比较' – Sebastian 2014-10-10 16:48:46