如何用Python替换字符串中除最后一个外的所有replace()实例?

2024-04-20 07:39:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用这段代码重命名控制器中的所有文件(到目前为止),但是,我不知道如何告诉python不要替换“”的最后一个实例

我知道这可能很简单,但我是新的编程

任何帮助都将不胜感激!你知道吗

import os

def main():

testDir = os.listdir("D:\TempServer\Videos\Series\American Dad\American 
Dad! S12 Season 12 [1080p WEB-DL HEVC x265 10bit] [AAC 5.1] [MKV] - ImE")
print(testDir)
newTestStr = ""


    for filename in testDir:
        testStr = "" + filename
        print(testStr.replace(".", " ", -1))

if __name__ == '__main__':
    main()

“-1”不起作用,我不确定什么会起作用


Tags: 文件实例代码importosmain编程控制器
3条回答

试试这个:

for filename in testDir:
        testStr = "" + filename
        total_occurances = filename.count('.')
        testStr = testStr.replace(".", " ", total_occurances-1)

使用os.splitext分隔名称和扩展名,并在替换名称中的点后连接它们:

for filename in testDir:
    name, ext = os.path.splitext(filename)
    name = name.replace('.', ' ')
    new_filename = name + ext
    print(new_filename)

^{}获取旧子字符串、新子字符串以及执行替换的次数。-1不是替换数量的合适值。计算旧子字符串在字符串中出现的次数,然后从该值中减去一次,然后执行该替换次数。你知道吗

>>> s = 'abc x def x ghi x'
>>> val = s.count('x')
>>> s.replace('x', 'y', val-1)
'abc y def y ghi x'

相关问题 更多 >