Python:如何将文件名更改为小写而不是扩展名
Python: How to change a filename to lowercase but NOT the extension
我正在尝试将 WINDOW.txt 等文件名更改为小写,但随后我还需要将扩展名 .txt 更改为大写。我在想我可以将整个内容更改为小写,因为扩展名已经是小写,然后使用 .endswith() 之类的东西将扩展名更改为大写,但我似乎无法弄清楚。我知道这对大多数人来说可能看起来很简单,所以感谢您的耐心等待。
oldname='HeLlO.world.TxT'
if '.' in oldname:
(basename, ext) = oldname.rsplit('.', 1)
newname = basename.lower() + '.' + ext.upper()
else:
newname = oldname.lower()
print(f'{oldname} => {newname}')
...正确发出:
HeLlO.world.TxT => hello.world.TXT
如果我没看错,它需要小写的名称和大写的文件扩展名,这很奇怪,但这是一个简单的解决方案。
filename = "WINDOW.txt"
ext_ind = filename.rindex('.')
filename = filename[0:ext_ind].lower() + '.' + filename[ext_ind+1:len(filename)].upper()
print(filename)
>> window.TXT
这个处理跨不同操作系统的文件名和路径:
import os.path
def lower_base_upper_ext(path):
"""Filename to lowercase, extension to uppercase."""
path, ext = os.path.splitext(path)
head, tail = os.path.split(path)
return head + tail.lower() + ext.upper()
保留可能的目录名不变,只是文件名部分小写,扩展名大写。
filename = "WINDOW.txt"
filename = filename.split('.')
filename = ".".join(filename[0:-1]).lower() + '.' + filename[-1].upper()
print(filename)
>> window.TXT
filename = "foo.bar.maz.txt"
filename = filename.split('.')
filename = ".".join(filename[0:-1]).lower() + '.' + filename[-1].upper()
print(filename)
>> foo.bar.maz.TXT
name = "MyFile.txt"
new_name = name.rsplit(sep= ".", maxsplit=1)
print(new_name[0].lower()+"."+new_name[1].upper())
我正在尝试将 WINDOW.txt 等文件名更改为小写,但随后我还需要将扩展名 .txt 更改为大写。我在想我可以将整个内容更改为小写,因为扩展名已经是小写,然后使用 .endswith() 之类的东西将扩展名更改为大写,但我似乎无法弄清楚。我知道这对大多数人来说可能看起来很简单,所以感谢您的耐心等待。
oldname='HeLlO.world.TxT'
if '.' in oldname:
(basename, ext) = oldname.rsplit('.', 1)
newname = basename.lower() + '.' + ext.upper()
else:
newname = oldname.lower()
print(f'{oldname} => {newname}')
...正确发出:
HeLlO.world.TxT => hello.world.TXT
如果我没看错,它需要小写的名称和大写的文件扩展名,这很奇怪,但这是一个简单的解决方案。
filename = "WINDOW.txt"
ext_ind = filename.rindex('.')
filename = filename[0:ext_ind].lower() + '.' + filename[ext_ind+1:len(filename)].upper()
print(filename)
>> window.TXT
这个处理跨不同操作系统的文件名和路径:
import os.path
def lower_base_upper_ext(path):
"""Filename to lowercase, extension to uppercase."""
path, ext = os.path.splitext(path)
head, tail = os.path.split(path)
return head + tail.lower() + ext.upper()
保留可能的目录名不变,只是文件名部分小写,扩展名大写。
filename = "WINDOW.txt"
filename = filename.split('.')
filename = ".".join(filename[0:-1]).lower() + '.' + filename[-1].upper()
print(filename)
>> window.TXT
filename = "foo.bar.maz.txt"
filename = filename.split('.')
filename = ".".join(filename[0:-1]).lower() + '.' + filename[-1].upper()
print(filename)
>> foo.bar.maz.TXT
name = "MyFile.txt"
new_name = name.rsplit(sep= ".", maxsplit=1)
print(new_name[0].lower()+"."+new_name[1].upper())