我正在尝试使用此代码重命名控制器中的所有文件(到目前为止),但是,我不确定如何告诉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”不起作用,我不确定会怎样
答案 0 :(得分:3)
使用os.splitext分隔名称和扩展名,并在替换名称中的点后将它们加入:
for filename in testDir:
name, ext = os.path.splitext(filename)
name = name.replace('.', ' ')
new_filename = name + ext
print(new_filename)
答案 1 :(得分:2)
str.replace
接受旧的子字符串,新的子字符串以及执行替换次数的次数。 -1
不适合替换次数。计算旧的子字符串出现在字符串中的次数,然后从该值中减去一个并执行该替换次数。
>>> s = 'abc x def x ghi x'
>>> val = s.count('x')
>>> s.replace('x', 'y', val-1)
'abc y def y ghi x'
答案 2 :(得分:2)
尝试一下:
for filename in testDir:
testStr = "" + filename
total_occurances = filename.count('.')
testStr = testStr.replace(".", " ", total_occurances-1)