使用通配符 ("*") 匹配的源文件夹名称重命名文件夹

Rename a folder with source folder name matched by wildcard ("*")

我有一个名为 "abcd-1" 的本地文件夹,我想做这样的事情:

import os
os.rename("abcd*", "abcd")

我知道只有一个这样的文件夹,所以它是一个有效的操作,但它看起来 os.rename 不支持 *。我该如何解决?

glob

>>> import os, glob
>>> for f in glob.glob("abcd*"):
...   os.rename(f, "abcd")
... 
>>> 
  1. 检查是否只有一个结果或使用 glob.glob("abcd*")[0] 作为第一个结果。
  2. 使用os.path.isdir()检查是否是目录

使用 glob 模块

例如

glob.glob("abcd*")

将 return ["abcd-1"] 然后你可以重命名文件夹 您可能应该使用断言语句来确保只有 1 个结果

您可以结合使用 globos.path.isdir() 函数(确定它是否是一个目录),然后 os.rename() 重命名实际文件。

例子-

import glob
import os
import os.path
lst = glob.glob("abcd")
for element in lst:
    if os.path.isdir(element):
        os.rename(element,"abcd")