Python 如何从浮点中删除最左边的数字?

Python 如何从浮点中删除最左边的数字?,python,string-formatting,Python,String Formatting,我试图在bashshell中使用Python打印亚秒计时 这在某种程度上与经济增长有关。我在macos上,bash没有提供亚秒计时 如果我从time import time使用python-c';打印(f“{time():.3f}”)例如,我得到: 1603052253.465 python-c'从time导入time;print(f“{time():4.3f}”)具有相同的输出行为 现在,这相当吵闹。我真的不需要一步一步地查看所有最左边的数字到眼球的执行时间 我写了一个新脚本,它做得更好:

我试图在bashshell中使用Python打印亚秒计时

这在某种程度上与经济增长有关。我在macos上,bash没有提供亚秒计时

如果我从time import time使用
python-c';打印(f“{time():.3f}”)
例如,我得到:

1603052253.465
python-c'从time导入time;print(f“{time():4.3f}”)
具有相同的输出行为

现在,这相当吵闹。我真的不需要一步一步地查看所有最左边的数字到眼球的执行时间

我写了一个新脚本,它做得更好:

$ time4bash.py

 2325.987

$ time4bash.py

 2328.201


但是做这件事的代码比我希望的要复杂得多

from time import time
time_ = time()
stime = f"{time_:.3f}"

#look for decimal separator, and this will break on `,` locales
pos = stime.index(".")
tstime = stime[pos-4:]

print(tstime)

使用字符串格式标志或模数学有更好的方法吗?

在使用
.3f
格式化之前,只需计算模10000的余数:

>>> t = time.time()
>>> t
1603052957.262341

>>> t % 10000
2957.2623410224915

>>> '{:.3f}'.format(t % 10000)
'2957.262'
或者将所有内容放在一行:

print('{:.3f}'.format(time.time() % 10000))

如果您只想将时间转换为小时、分钟、秒,您可以尝试以下方法

time.strftime("%H:%M:%S", time.gmtime())
这将返回:

'20:42:13'
'13:47:54'
您还可以通过以下方式获取当地时间:

time.strftime("%H:%M:%S", time.localtime())
这将返回:

'20:42:13'
'13:47:54'

啊。我甚至提到了模数学,但出于某种原因,我对它产生了一种心理障碍,并考虑了10位左右的长数字,即时间%10000000或其他。而且还认为模只对整数起作用。我应该试试看。一旦计时器启动,就接受。您还可以执行以下操作
time。strftime(“%H:%M:%S”,time.gmtime())
看起来您只是在查找数值@暗影游侠解决方案的工作完美,因为你可以做模10000。我的回答是给你一个比除法更合适的选择。这不会让我获得亚秒的精度,我的问题更倾向于浮点数格式,尽管它是在时间上下文中提出的。另外,如果你看一下链接的问题,它使用bash
bc
来进行时间间隔计算,但在我的例子中,它缺少的只是第二个分数。我想,我可以从我/暗影游侠的输出中做到这一点,而不是从你的输出中。我没有投反对票,但这不是我想要的;应该更多地关注这个问题,而不是提供备选方案。time.time()%10000起作用