Python 字符串格式,包括末尾的 0
Python string formatting, include the 0 at the end
我在定义中使用 Python 的字符串格式化方法来调用一些 .txt 文件。一个这样的例子是:
def call_files(zcos1,zcos1,sig0):
a,b = np.loadtxt('/home/xi_'+str(zcos1)+'<zphot'+str(sig0)+'<'+str(zcos2)+'_.dat',unpack=True)
这里str(sig0)
给出了sig0 == 0.050
的调用。但是,当我这样做时,它没有取 0.050
,而是四舍五入为 0.05
!
如何让 str(sig0)
变成 0.050
而不是 0.05
?
使用str.format()
或%
:
>>> "{:.03f}".format(0.05)
'0.050'
您可以像这样通过一次调用 str.format()
来格式化整个路径:
a, b = np.loadtxt("/home/xi_{}<zphot{:.03f}<{}_.dat".format(zcos1, sig0, zcos2),
unpack=True)
或使用下面建议的 关键字参数:
a, b = np.loadtxt("/home/xi_{cos1}<zphot{sig0:.03f}<{cos2}_dat".format(
cos1=zcos1, sig0=sig0, cos2=zcos2), unpack=True)
我在定义中使用 Python 的字符串格式化方法来调用一些 .txt 文件。一个这样的例子是:
def call_files(zcos1,zcos1,sig0):
a,b = np.loadtxt('/home/xi_'+str(zcos1)+'<zphot'+str(sig0)+'<'+str(zcos2)+'_.dat',unpack=True)
这里str(sig0)
给出了sig0 == 0.050
的调用。但是,当我这样做时,它没有取 0.050
,而是四舍五入为 0.05
!
如何让 str(sig0)
变成 0.050
而不是 0.05
?
使用str.format()
或%
:
>>> "{:.03f}".format(0.05)
'0.050'
您可以像这样通过一次调用 str.format()
来格式化整个路径:
a, b = np.loadtxt("/home/xi_{}<zphot{:.03f}<{}_.dat".format(zcos1, sig0, zcos2),
unpack=True)
或使用下面建议的
a, b = np.loadtxt("/home/xi_{cos1}<zphot{sig0:.03f}<{cos2}_dat".format(
cos1=zcos1, sig0=sig0, cos2=zcos2), unpack=True)