使用子文件夹名称将文件重命名一级

2024-09-28 20:53:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个父文件夹和它下面的几个子文件夹

parent:
--subfolder1:
-----folderinsidesubfolder1:
-------file.tsv
--subfolder2:
-----folderinsidesubfolder2:
-------file.tsv

我想做的是改变文件.tsv文件夹名在上面一级,即subfolder1,subfolder2,如下所示

^{pr2}$

代码:

from os import walk, path, rename
for dirpath, _, files in walk('pathto/parent'):
    for f in files:
        if f.endswith(".tsv"):
           print rename(f, dirpath[-2]+ '.tsv')

错误:

OSError: [Errno 2] No such file or directory

这样做对吗?在


Tags: 文件in文件夹fortsvfilesfileparent
1条回答
网友
1楼 · 发布于 2024-09-28 20:53:41

os.path.split()创建一个head和tail,因此您需要拆分两次才能获得祖父母目录,例如:

import os
for dirpath, _, files in os.walk('pathto/parent'):
    for f in files:
        if f.endswith('.tsv'):
            os.rename(os.path.join(dirpath, f), os.path.join(dirpath, os.path.split(os.path.split(dirpath)[0])[1] + '.tsv'))

相关问题 更多 >