我有一个目录,其中存在多个文件夹,并且在每个文件夹中,另一个文件夹中存在一个文件。结构如下
C:\users\TPCL\New\20190919_xz.txt
C:\users\TPCH\New\20190919_abc.txt
目标:
我想重命名文件名,如下所示:
C:\users\TPCL\New\20190919_xz_TPCL.txt
C:\users\TPCH\New\20190919_abc_TPCH.txt
我的方法:
for root,dirs,filename in os.walk('C\users\TPCL\New'):
prefix = os.path.basename(root)
for f in filename:
os.rename(os.path.join(root,f),os.path.join(root,"{}_{}".format(f,prefix)))
上述方法产生以下结果:
C:\users\TPCL\New\20190919_xz_New.txt
C:\users\TPCH\New\20190919_abc_New.txt
所以问题是:如何附加祖父文件夹名称,而不是父文件夹名称?
最佳答案
您需要使用目录名和基本名来执行此操作。
使用os.path.dirname获取目录名(不包括最后一部分)和
然后使用 os.path.basename 获取路径名的最后部分。
替换
前缀 = os.path.basename(root)
与
os.path.basename(os.path.dirname(root))
请引用这个:
https://docs.python.org/3.7/library/os.path.html#os.path.basename
https://docs.python.org/3.7/library/os.path.html#os.path.dirname
关于python - 如何将祖级文件夹名称附加到文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58051039/