Python 重命名Windows目录中的文件

Python 重命名Windows目录中的文件,python,python-2.7,file-rename,listdir,Python,Python 2.7,File Rename,Listdir,我目前正试图通过编写一个脚本来学习python,该脚本将通过保留对象的名称来清理我的下载文件夹,同时从文件夹/文件名中删除特殊字符和额外数据 i、 e: 以及 file.name.randomstring_randomstring.mkv file name randomstring randomstring (date).mkv 我已经搜索了一段时间了,但是虽然我可以制作一个脚本来查看这些文件,但我似乎无法让它只提取每个特殊字符并重命名它。当我这样做时,我得到: Traceback (mos

我目前正试图通过编写一个脚本来学习python,该脚本将通过保留对象的名称来清理我的下载文件夹,同时从文件夹/文件名中删除特殊字符和额外数据

i、 e:

以及

file.name.randomstring_randomstring.mkv
file name randomstring randomstring (date).mkv
我已经搜索了一段时间了,但是虽然我可以制作一个脚本来查看这些文件,但我似乎无法让它只提取每个特殊字符并重命名它。当我这样做时,我得到:

Traceback (most recent call last):
  File "C:\Python27\Scripts\plexprep.py", line 7, in <module>
    os.rename(dir, dir.replace(".", "").lower())
WindowsError: [Error 2] The system cannot find the file specified

正如@cricket_007在评论中所说,您应该通过在路径前面添加
r
来避免反斜杠:

for dir in os.listdir(r'F:\Downloads\Completed Downloads'):
但是,
WindowsError
是由其他原因引起的:在循环中,
dir
将只是子文件夹的名称,而不是子文件夹的完整路径。一个可能的解决办法是:

base = r'F:\Downloads\Completed Downloads'
for dir in os.listdir(base):
    path = os.path.join(base, dir)
    # Now use your os.rename() logic

正如@cricket_007在评论中所说,您应该通过在路径前面添加
r
来避免反斜杠:

for dir in os.listdir(r'F:\Downloads\Completed Downloads'):
但是,
WindowsError
是由其他原因引起的:在循环中,
dir
将只是子文件夹的名称,而不是子文件夹的完整路径。一个可能的解决办法是:

base = r'F:\Downloads\Completed Downloads'
for dir in os.listdir(base):
    path = os.path.join(base, dir)
    # Now use your os.rename() logic

我不是要求别人帮我做这件事,请给我指出正确的方向。所以你想替换文件名中的点,除了最后一个点?好吧,我查看文件/目录的方式是这样的,扩展名显示得如此。mkv总是出现在我面前。因此,我可以从目录/文件名中删除所有句点以及诸如“x264”之类的静态内容。我想我需要创建元组或列表来运行它们,但我还没有完全在脚本中。那么,您正在尝试重新创建吗?我想是的。然而,我这么做主要是为了学习更多关于计算机和编程的知识,所以我可能不需要所有这些功能!lolI不是要求别人帮我做这件事,请给我指出正确的方向。所以你想替换文件名中的点,除了最后一个点?嗯,我查看文件/目录的方式是这样的,扩展名显示得如此。mkv总是出现在我面前。因此,我可以从目录/文件名中删除所有句点以及诸如“x264”之类的静态内容。我想我需要创建元组或列表来运行它们,但我还没有完全在脚本中。那么,您正在尝试重新创建吗?我想是的。然而,我这么做主要是为了学习更多关于计算机和编程的知识,所以我可能不需要所有这些功能!英雄联盟