如何更改文件夹中文件的某些字符

u4dcyp6a  于 2021-07-13  发布在  Java
关注(0)|答案(5)|浏览(741)

我有一个叫“动物”的文件夹
在文件夹中,我有以下文件:

"cat.PNG", "dog.PNG", "horse.PNG", "sheep.PNG"

我知道下面的代码会把文件改成小写

files = os.listdir('.')
for f in files:
    new = f.lower()
    os.rename(f, new)

但是,如果我希望文件类型在每个文件中都是较低的,而动物的名称在每个文件中都是较高的,那么我该如何更改这个值呢?

8mmmxcuj

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())

将名称拆分为基数+扩展名
将扩展名转换为小写
使用完整路径执行重命名

smdncfj3

smdncfj32#

一个非常简单的解决方案是:

for f in files:
    new = f.upper()
    new.replace(".PNG", ".png")
    os.rename(f, new)
z6psavjg

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)
mu0hgdu0

mu0hgdu04#

(base, ext) = f.split('.')
new_name = f'{c.upper()}.{d.lower()}'
os.rename(f, new_name)
mqxuamgl

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()]))

相关问题