Python字符串格式,包括最后的0

时间:2016-01-10 18:25:49

标签: python function numpy string-formatting

我在定义中使用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

1 个答案:

答案 0 :(得分:5)

使用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)

或使用以下建议的Adam Smith关键字参数:

a, b = np.loadtxt("/home/xi_{cos1}<zphot{sig0:.03f}<{cos2}_dat".format(
    cos1=zcos1, sig0=sig0, cos2=zcos2), unpack=True)