【问题标题】:Remove every character after a certain character in a string in python 3 [duplicate]在python 3中删除字符串中某个字符之后的每个字符[重复]
【发布时间】:2016-10-06 14:52:47
【问题描述】:

我正在为我的游戏打开纹理包并将文件名保存在一个表中,但是当我使用 os.listdir() 时,它会返回带有扩展名的文件名。有没有办法可以删除标记文件扩展名的点之后的所有字符?

示例:将'Body.png' 更改为'Body' 或将'Head.jpeg' 更改为'Head'

谢谢!

【问题讨论】:

  • 注意,第一个答案很好,只是他们使用的是 python2.x。对于python3.x,只需要使用print函数即可。

标签: python string python-3.x


【解决方案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 -- 是的,我绝对同意。我认为语义比人们认为的更重要......
猜你喜欢
  • 2017-01-04
  • 2010-12-20
  • 2019-04-23
  • 1970-01-01
  • 2015-04-10
  • 2018-11-15
  • 1970-01-01
  • 2016-05-11
  • 2020-11-23
相关资源
最近更新 更多