编写程序/脚本从一堆文件名的开头删除相同字符串的最简单方法是什么?

时间:2013-10-23 19:49:13

标签: python windows

我有一堆mp3都有很长的标题,其次是“第3部分”或“第4部分”等等。所以它就像“aasasdfjklakjsdf - part 3”和“aasasdfjklakjsdf - part 4”和“aasasdfjklakjsdf - 第5部分“等等。

我有超过100个,我想简单地从每个标题中删除“aasasdfjklakjsdf - ”部分。我有一个CS学位,所以我知道编程的基础知识,但我从来没有写过任何类型的脚本,并且很想开始。我想知道做这样的事情的最快和最简单的方法是什么。我正在运行Windows 7.我猜猜python的东西可能吗?或者我可以从Windows命令提示符处执行某些操作吗?

3 个答案:

答案 0 :(得分:2)

如果您要使用Python,我认为这是一个不错的选择,您将使用glob模块获取所有文件名,使用os模块重命名文件。你会想弄清楚你正在寻找什么的挡板。在Python中,字符串具有split方法。对于每个文件名,请在分隔符处拆分文件名,然后使用拆分中的第二个字段重命名该文件。

这是对您需要做的非常广泛的描述。祝你好运!

答案 1 :(得分:1)

这是我的建议,首先安装python然后再安装ipython

现在进入ipython并尝试使用这样的交互式解释器:

import os
cd C:/my_dir/
trimstr = 'aasasdfjklakjsdf - '
for x in os.listdir('.'):
  if x.startswith(trimstr):
    oldname = x
    newname = x[len(trimstr):]
    print oldname, ' -> ', newname 
    if os.path.exists(newname):
      print 'skipping', x, 'because the new name would stomp an existing file'
    else:
      pass
      #os.rename(oldname, newname)
  else:
    print 'ignoring', x

如果您懒惰,可以复制我的代码块并将其粘贴到ipython中,但是将行'C:/my_dir/'更改为os.chdir(...)替换为您要处理的实际目录。

在这个阶段,它只会聊聊stdout将要进行的更改。所以,运行它,如果一切看起来都很好,请继续取消注释#commented line并真正做到这一点。您可以使用向上箭头重新运行刚刚输入ipython的内容。

答案 2 :(得分:0)

您不需要为此操作编写脚本,只需使用powershell(内置于Windows中)。

Powershell有一个Rename-Item命令行开关(Microsoft Docs),您可以使用以下方式:

Dir | Rename-Item –NewName {$_.name –replace "_What_You_Want_Replaced_","_Replacement_"}

e.g。

>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS cd "your mp3 folder"
PS Dir | Rename-Item –NewName {$_.name –replace "aasasdfjklakjsdf -",""}

完成并完成。就这么简单。