在python 3中删除字符串中某个字符之后的每个字符[重复]
Posted
技术标签:
【中文标题】在python 3中删除字符串中某个字符之后的每个字符[重复]【英文标题】:Remove every character after a certain character in a string in python 3 [duplicate] 【发布时间】:2016-10-06 14:52:47 【问题描述】:我正在为我的游戏打开纹理包并将文件名保存在一个表中,但是当我使用 os.listdir() 时,它会返回带有扩展名的文件名。有没有办法可以删除标记文件扩展名的点之后的所有字符?
示例:将'Body.png'
更改为'Body'
或将'Head.jpeg'
更改为'Head'
谢谢!
【问题讨论】:
注意,第一个答案很好,只是他们使用的是 python2.x。对于python3.x,只需要使用print
函数即可。
【参考方案1】:
你可能想要os.path.splitext
。这对于从文件名中拆分文件扩展名很有用。
这是一个例子:
>>> import os.path
>>> os.path.splitext('Body.png')
('Body', '.png')
>>> os.path.splitext('Body.png')[0]
'Body'
【讨论】:
我将如何使用它。 或更简单>>> path = "c:/temp/x.txt" 然后分割路径并取第一部分... >>> path.split(".")[ 0] 'c:/temp/x' @DanPatterson -- 但很可能是错的......如果你有一个文件名:path = 'c:/temp.foo/x.txt'
?我想path.rsplit(".", 1)[0]
可能更健壮?但我宁愿依赖一个库函数来处理所有这些奇怪的极端情况......
@mgilson 你对rsplit
说的很对。它更正确。尽管如此,除了库的健壮性之外,使用os.path.splitext
在语义上也更加清晰。
@TimHoffmann -- 是的,我绝对同意。我认为语义比人们认为的更重要......以上是关于在python 3中删除字符串中某个字符之后的每个字符[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript (html) 在某个字符出现之前/之后删除所有内容
华为OD机试真题 Python 实现删除重复数字后的最大数字100%通过率2022.11 Q4 新题