从Python中的许多目录中删除集合字符串

从Python中的许多目录中删除集合字符串,python,python-3.x,Python,Python 3.x,我有一个文件夹/users/my/folder,其中包含许多文件夹,所有文件夹的名称都以\u STAGE copy结尾。我想删除文件夹名\u STAGE copy的结尾,并将其前面的所有内容保留在文件夹名中 我已经找到了提供before/after名称的示例,但是没有一个能够从目录中的许多文件夹中批量删除特定字符串 这看起来很简单,但我很难弄明白试试看: import os path = "dir/" folders = [] for r, d, f in os.walk(path): for

我有一个文件夹
/users/my/folder
,其中包含许多文件夹,所有文件夹的名称都以
\u STAGE copy
结尾。我想删除文件夹名
\u STAGE copy
的结尾,并将其前面的所有内容保留在文件夹名中

我已经找到了提供before/after名称的示例,但是没有一个能够从目录中的许多文件夹中批量删除特定字符串

这看起来很简单,但我很难弄明白

试试看:

import os

path = "dir/"
folders = []
for r, d, f in os.walk(path):
for folder in d:
    folders.append(os.path.join(r, folder))

for f in folders:
    if f[-11:] == "_STAGE copy":
        os.rename(f, f[:-11])

仍然需要解决堆栈溢出的问题,很抱歉编辑了前面的响应。根据一些回复和进一步阅读,我能够通过以下方式解决:

import os

path = '/directory/path/'
folders = []
for r, d, f in os.walk(path):
    for folder in d:
        folders.append(os.path.join(r, folder))
for f in folders:
    print(f)     

for f in folders:
    if f[-11:] == "_STAGE copy" :
        os.rename(f, f[:-11])

到目前为止你都尝试了什么?我想这应该会让你走上正轨:尝试使用:try
man-find
,查找
-exec
;您不需要为此编写自己的程序。在shell中,对于单个目录,您需要类似于
mv“$dir”“${dir%\u STAGE copy}”
的内容。使用
查找-exec
将其应用于所有相关目录。谢谢我正在接近这一点-这似乎适用于以
\u STAGE COPY
结尾的文件,但不适用于文件夹名称本身。您想更改以
\u STAGE COPY
结尾的目录名称吗?仅适用于文件夹名称,不适用于文件。在一个文件夹中,我有许多文件夹都以
\u STAGE copy
结尾,我想从文件夹名称中删除这些文件夹。我不想编辑这些文件夹中的任何实际文件。如果更改了我的答案,请再次检查@phenderbenderstill似乎不想工作。我正在尝试打印“文件夹”,以查看问题可能是什么,但看起来列表中没有添加任何内容