为什么当向超过 5 垃圾的文件添加新扩展名并删除它时,从原始扩展名 python 中删除一个字母

发布于 2025-01-10 17:34:59 字数 349 浏览 0 评论 0原文

此行添加新扩展

os.rename(file_name,file_name + ".test12")

在此处输入图像描述

此行删除新扩展

os.rename(file_name, file_name.strip(".test12"))

在此处输入图片描述

This line to add new extension

os.rename(file_name,file_name + ".test12")

enter image description here

this line to delete new extension

os.rename(file_name, file_name.strip(".test12"))

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云朵有点甜 2025-01-17 17:34:59

因为这不是 strip() 所做的。它不会删除字符串,而是删除字符串两侧的字符。在您的示例中,它没有从左侧删除任何内容,因为它是字符“f”,并且您给出了:“.”、“t”、“s”、“1”、“2”。从右侧开始,它删除了所有字符,直到遇到“x”并停止。
对于这个特定的需求,使用replace()

file_name = 'file.txt.test12'
print(file_name)
print(file_name.strip('.test12'))
print(file_name.strip('.test12x'))  # added 'x' as well just to learn
print(file_name.replace('.test12', '')) 

输出:

file.txt.test12
file.tx
fil
file.txt

because that's not what strip() does. it doesn't remove a string, but characters from both sides of the string. in your example it didn't remove anything from the left because it is the character 'f' and you gave: '.', 't', 's', '1', '2'. from the right it removed all the characters until it encountered the 'x' and stopped.
for this specific need, use replace()

file_name = 'file.txt.test12'
print(file_name)
print(file_name.strip('.test12'))
print(file_name.strip('.test12x'))  # added 'x' as well just to learn
print(file_name.replace('.test12', '')) 

Output:

file.txt.test12
file.tx
fil
file.txt
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文