Python 将多个目录的名称添加到文件名
我的文件夹结构如下: C:\Users\me\JupyterNotebooks\Work\LabCode\datafiles\2020\u 09sept\u 17\00\58 在最后一个“58”文件夹下,放置一个文件;00.avro 我想将文件重命名为:2020_09sept_17_00_58_00.avro(将最后三个目录添加到文件名) 我可以使用58文件夹将文件名重命名为58_00.avro:Python 将多个目录的名称添加到文件名,python,directory,Python,Directory,我的文件夹结构如下: C:\Users\me\JupyterNotebooks\Work\LabCode\datafiles\2020\u 09sept\u 17\00\58 在最后一个“58”文件夹下,放置一个文件;00.avro 我想将文件重命名为:2020_09sept_17_00_58_00.avro(将最后三个目录添加到文件名) 我可以使用58文件夹将文件名重命名为58_00.avro: for root, dirs, files in os.walk(r'C:\Users\
for root, dirs, files in
os.walk(r'C:\Users\me\JupyterNotebooks\Work\LabCode\datafiles\2020_09sept_17\00'):
if not files:
continue
prefix = os.path.basename(root)
for f in files:
os.rename(os.path.join(root, f), os.path.join(root, "{}_{}".format(prefix, f)))
(来自此)
但是如何使用多个文件夹名称重命名?试试以下方法:
用于os.walk(r'C:\Users\me\JupyterNotebooks\Work\LabCode\datafiles\2020\u 09sept\u 17\00)中的根目录、目录和文件:
如果不是文件:
持续
dirnames=[]
pref=根
对于范围(3)中的35;:收集最后3个目录名
dirnames.insert(0,os.path.basename(pref))
pref=os.path.dirname(pref)
prefix=“389;”。连接(目录名称)
对于文件中的f:
当前名称=os.path.join(根,f)
new_name=os.path.join(根“{}{}”.format(前缀,f))
重命名(当前名称、新名称)