我是一个python初学者但有一些基本经验,我需要有人请帮助我使用os模块根据父文件夹重命名子文件夹。我一直在寻找过去一周的答案,但没有取得任何成功。我假设我需要使用os.walk方法来执行此操作。
这是我的文件夹结构:
我需要结果看起来像这样。
有人可以帮忙吗?
答案 0 :(得分:1)
python 2.7:
import os
os.chdir("C:\data\test\") # go to dir
sub_dirs = os.walk('.').next()[1] # get list of subdirs
for sub_dir in sub_dirs:
sub_sub_dir = os.walk('.').next[1] # get sub-subdir
os.rmdir(sub_sub_dir) # remove sub-subdir
os.makedirs(sub_dir + '\bla') # make new sub-subdir named subdir\bla
python 3 +:
import os
os.chdir("C:\data\test\")
sub_dirs=next(os.walk('.'))[1]
for sub_dir in sub_dirs:
sub_sub_dir = next(os.walk('.'))[1]
os.rmdir(sub_sub_dir)
os.makedirs(sub_dir + '\bla')
未经测试,但应该这样做。
答案 1 :(得分:0)
您可以使用以下内容获取所有文件及其相应文件夹位置的列表:
here = '.' # Current location
files = [(root, files) for root, dirs, files in os.walk(here) if (not dirs and files)]
对于给定的文件夹结构,它将返回:
[
('C:\data\test\map1', ['1617151']),
...
]
您现在可以遍历此列表并重命名文件(https://docs.python.org/3/library/os.html#os.rename)。您可以通过拆分根字符串(root.split('\')[-1]
)来获取父文件夹的名称。