Python文件名更改

Python文件名更改,python,macos,Python,Macos,我在Mac上的一个目录中有很多视频,它们的文件名中都有一个特定的字符串,我想删除,但我想保留文件名的其余部分。我正在终端上运行这个python脚本 我有这种语法,但似乎不起作用。使用以下方法是否可行?这似乎很简单,是做这类事情的最佳方式,这就是为什么我认为它不起作用 from os import rename, listdir text = "Some text I want to remove from file name" files = listdir("/Users/Admin/Des

我在Mac上的一个目录中有很多视频,它们的文件名中都有一个特定的字符串,我想删除,但我想保留文件名的其余部分。我正在终端上运行这个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, ""))

问题是,当您使用
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, ""))

是的,成功了。谢谢:)你能解释一下“文件”吗?它是在告诉脚本使用这个“文件”吗?
file
在这里只是一个迭代器,例如,当我在做
os.listdir('./test')
时,
file
将是例如'planet.png'或'world.png',你可以插入一个
打印(路径)
来查看路径的样子,并将它们与
os.listdir('./test')进行比较
PS:谢谢你的主意。我开始以命令行工具的形式收集这些小东西,以实现可重用性: