我有一个叫“动物”的文件夹在文件夹中,我有以下文件:
"cat.PNG", "dog.PNG", "horse.PNG", "sheep.PNG"
我知道下面的代码会把文件改成小写
files = os.listdir('.') for f in files: new = f.lower() os.rename(f, new)
但是,如果我希望文件类型在每个文件中都是较低的,而动物的名称在每个文件中都是较高的,那么我该如何更改这个值呢?
8mmmxcuj1#
最干净的方法(也适用于任何目录和任何扩展):
for f in os.listdir(source_dir): name,ext = os.path.splitext() os.rename(os.path.join(source_dir,f), os.path.join(source_dir,name+ext.lower())
将名称拆分为基数+扩展名将扩展名转换为小写使用完整路径执行重命名
smdncfj32#
一个非常简单的解决方案是:
for f in files: new = f.upper() new.replace(".PNG", ".png") os.rename(f, new)
z6psavjg3#
您可以拆分文件名,分别执行每个操作,然后重新连接它们。
files = os.listdir('.') for f in files: # Split the filename by '.' split_filename = f.split('.') filename = ".".join(split_filename[:-1]) extension = split_filename[:-1] # Do each operation filename = filename.upper() extension = extension.lower() # Rejoin the filename new_filename = filename + '.' + extension # Rename the file os.rename(new_filename, new)
mu0hgdu04#
(base, ext) = f.split('.') new_name = f'{c.upper()}.{d.lower()}' os.rename(f, new_name)
mqxuamgl5#
您可以使用拆分和联接,请参见以下示例:
file_names = ["cat.PNG", "dog.PNG", "horse.PNG", "sheep.PNG"] for file_name in file_names: name, extension = file_name.split('.') print('.'.join([name.upper(), extension.lower()]))
5条答案
按热度按时间8mmmxcuj1#
最干净的方法(也适用于任何目录和任何扩展):
将名称拆分为基数+扩展名
将扩展名转换为小写
使用完整路径执行重命名
smdncfj32#
一个非常简单的解决方案是:
z6psavjg3#
您可以拆分文件名,分别执行每个操作,然后重新连接它们。
mu0hgdu04#
mqxuamgl5#
您可以使用拆分和联接,请参见以下示例: