Python 通过Snakemake创建文件时防止科学写作

Python 通过Snakemake创建文件时防止科学写作,python,python-3.x,snakemake,Python,Python 3.x,Snakemake,不确定这是Python问题还是Snakemake问题,但我有一个目标: SCORES = expand(expand(RESULTS_DIR + "/{{sp}}_{{st}}/{{seq}}/scores/{tf}_{th}.scores.tab", zip, tf=TF_NAME, th=TF_THR), sp=SPECIES, st=STRAINS, seq=SEQ) 其中,TF_THR是一个浮动列表。在某些情况下,输出文件是使用科学记数法编写的,我想防止这种情况发生。我试过这个: th

不确定这是Python问题还是Snakemake问题,但我有一个目标:

SCORES = expand(expand(RESULTS_DIR + "/{{sp}}_{{st}}/{{seq}}/scores/{tf}_{th}.scores.tab", zip, tf=TF_NAME, th=TF_THR), sp=SPECIES, st=STRAINS, seq=SEQ)
其中,TF_THR是一个浮动列表。在某些情况下,输出文件是使用科学记数法编写的,我想防止这种情况发生。我试过这个:

th='{:.6f}'.format(TF_THR)
这是:

th=format(TF_THR, '0.6f'))
但在这两种情况下,我都会得到以下错误:

TypeError in line 44 of myworkflow.py:
unsupported format string passed to Series.__format__
  File "myworkflow.py", line 44, in <module>
myworkflow.py第44行中的类型错误: 传递给系列的格式字符串不受支持。\u格式__ 文件“myworkflow.py”,第44行,在
谢谢你的帮助

Expand和Python中的所有字符串一样,使用了“”。我不确定这是如何记录的蛇

为了解决您的问题,我们可以简单地执行以下操作:

TF_THR = [0.12345, 0.6789]
print(expand('{th:0.3f}', th=TF_THR))
# ['0.123', '0.679']

对我来说,实际的问题似乎是你试图一次格式化整个列表——这是行不通的。使用例如
th=['{.6f}'。TF_-THR中t的格式(t)
展开
。出于好奇,TF_-THR的哪些值给出了
'{.6f}。科学符号中的格式(x)
?我试了一些,但我不明白。。。