python: 按子文件夹名称重命名子文件夹中的文件
python: rename files in subfolders by subfolder name
我有一个包含很多子文件夹的文件夹。 Eash 的子文件夹有不同类型的文件。我正在尝试通过它们所在的子文件夹名称重命名这些文件(不会重复,因为每个文件都有自己的扩展名)。
数据如下所示:
folder
\ sub1
\ sub1\file1.ext1
\ sub1\file2.ext2
.
.
.
\ sub2
\ sub2\file1.ext1
\ sub2\file2.ext2
期望的输出
folder
\ sub1
\ sub1\sub1.ext1
\ sub1\sub1.ext2
.
.
.
\ sub2
\ sub2\sub2.ext1
\ sub2\sub2.ext2
`
我的代码不起作用。
import os
dir_name = os.getcwd()
for root, dirs, files in os.walk(dir_name, topdown=False):
for file in files:
file_name = os.path.splitext(file)[0]#file name no ext
os.rename(os.path.splitext(file)[0], root )
有什么想法吗?谢谢。
您可以使用os.path.basename
获取根目录名。
import os
dir_name = os.getcwd()
for root, dirs, files in os.walk(dir_name, topdown=False):
for file in files:
file_name = os.path.splitext(file)[0]#file name no ext
extension = os.path.splitext(file)[1]
dir_name = os.path.basename(root)
os.rename(root+"/"+file,root+"/"+dir_name+extension)
我有一个包含很多子文件夹的文件夹。 Eash 的子文件夹有不同类型的文件。我正在尝试通过它们所在的子文件夹名称重命名这些文件(不会重复,因为每个文件都有自己的扩展名)。 数据如下所示:
folder
\ sub1
\ sub1\file1.ext1
\ sub1\file2.ext2
.
.
.
\ sub2
\ sub2\file1.ext1
\ sub2\file2.ext2
期望的输出
folder
\ sub1
\ sub1\sub1.ext1
\ sub1\sub1.ext2
.
.
.
\ sub2
\ sub2\sub2.ext1
\ sub2\sub2.ext2
`
我的代码不起作用。
import os
dir_name = os.getcwd()
for root, dirs, files in os.walk(dir_name, topdown=False):
for file in files:
file_name = os.path.splitext(file)[0]#file name no ext
os.rename(os.path.splitext(file)[0], root )
有什么想法吗?谢谢。
您可以使用os.path.basename
获取根目录名。
import os
dir_name = os.getcwd()
for root, dirs, files in os.walk(dir_name, topdown=False):
for file in files:
file_name = os.path.splitext(file)[0]#file name no ext
extension = os.path.splitext(file)[1]
dir_name = os.path.basename(root)
os.rename(root+"/"+file,root+"/"+dir_name+extension)