当前位置: 首页 > 面试题库 >

为什么“%-d”或“%-e”删除前导空格或零?

华和悦
2023-03-14
问题内容

在SO 904928问题上(Python strftime-日期前无0?),Ryan回答:

实际上,我遇到了同样的问题,并且我意识到,如果在%和字母之间添加连字符,则可以删除前导零。

例如,%Y /%-m /%-d。

我遇到了同样的问题,但这是一个很好的解决方案,但是为什么会这样呢?

>>> import datetime
>>> datetime.datetime(2015, 3, 5).strftime('%d')
'05'

>>> datetime.datetime(2015, 3, 5).strftime('%-d')
'5'

# It also works with a leading space
>>> datetime.datetime(2015, 3, 5).strftime('%e')
' 5'

>>> datetime.datetime(2015, 3, 5).strftime('%-e')
'5'

# Of course other numbers doesn't get stripped
>>> datetime.datetime(2015, 3, 15).strftime('%-e')
'15'

我找不到任何有关的文档?-> python datetime
docs
/
python字符串操作

看来这在Windows计算机上不起作用,好吧,我不使用Windows,但要知道为什么它不起作用会很有趣。


问题答案:

Pythondatetime.strftime()委托给strftime()依赖于平台的C函数:

在不同平台上,支持的全部格式代码集会有所不同,因为Python会调用平台C库的strftime()函数,并且平台也很常见。要查看平台所支持的全套格式代码,请查阅strftime(3)文档。

Glibc对于strftime(3)的说明:

- (破折号)请勿填充数字结果字符串。

在我的Ubuntu计算机上的结果:

>>> from datetime import datetime
>>> datetime.now().strftime('%d')
'07'
>>> datetime.now().strftime('%-d')
'7'


 类似资料:
  • 问题内容: 我很难尝试将.strip与以下代码行结合使用。 谢谢您的帮助。 问题答案: 您可以使用strip()删除尾随和前导空格。 注意:内部空间被保留

  • 我使用XMLOutputter类将文档对象的内容写入xml文件。 但我面临以下问题:当我删除任何子节点时,它会在文档对象中创建空行,并且在将其内容保存到xml文件时,它也会在xml文件中显示空行。 所以这意味着如果我执行10次删除操作并保存其内容,那么xml文件中将有10行空行。 我浏览了以下链接。这些链接建议使用以下api: http://www.jdom.org/pipermail/jdom-

  • 我将html转换为XML。我正在努力清除这些空间。由于我使用了normalize()函数,空格被移除,但文本和元素之间的单个空格也被移除,例如农业研究的

  • 问题内容: 我正在编写一个拒绝访问未授权用户的安全系统。 它可以按预期授予授权用户访问权限,但也允许未经授权的用户使用! 为什么会发生这种情况?我已经明确指出仅在name等于,或 时才授予访问权限。我也尝试过相反的逻辑if ,但是结果是一样的。 问题答案: 在许多情况下,Python的外观和行为都像自然的英语,但这是这种抽象失败的一种情况。人们可以使用上下文线索来确定和是与动词连接的对象,但是Py

  • 问题内容: 我有一个以许多空格开头的文本字符串,介于2和4之间。 删除前导空格的最简单方法是什么?(即删除某个字符之前的所有内容?) 问题答案: 该方法将删除以字符串开头的前导空格,换行符和制表符: 编辑 正如balpha在注释中指出的那样,为了 仅从 字符串开头删除空格,应使用:

  • 问题内容: 我拼命地试图从字符串中删除空格(后来我希望能够将其转换为一个int),但是我似乎无法正常运行。 你能告诉我,我做错了什么吗?PS:我也尝试过\ W“和\ S” 问题答案: 更换 与 它将起作用,因为字符串是不可变的,因此不会更改您的字符串对象,它将返回一个新的字符串对象。因此,您将变量分配给由返回的字符串 另外,您应该尝试遵循Java命名约定,并使字段和变量以小写字母开头。 而且,您也