如果我有使用
分隔打印的以下数据print str(z).translate(None,"([]){},\"'").replace(' ','\t')
0.016611783537845426 0.5728972505882961 0.1723653381777387 0.44730982873820446 10 11 10 0.016611783537845426 0.5728972505882961 0.2526385373738682 0.03281263933004819 10 12 10 0.016611783537845426 0.5728972505882961 0.509414248773428
如何写入新的txt文件,但每说4个标签就开始换行。所以得到4列。
已经尝试了很多\ n但是我的rubbsih。
例如:
open("file.txt", "w").write('\n'.join(str(z).translate(None,"([]){},\"'").replace(' ','\t')))
为每个角色返回一个换行符。
答案 0 :(得分:4)
您可以使用itertools
documentation中的grouper
食谱:
import itertools as it
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return it.izip_longest(fillvalue=fillvalue, *args)
然后您可以将输出生成为:
values = str(z).translate(None,"([]){},\"'").split()
output = '\n'.join('\t'.join(x for x in g if x) for g in grouper(4, values))
或者如果您想将其写入文件,请使用f.writelines
:
f.writelines('\t'.join(x for x in g if x) + '\n' for g in grouper(4, values))
答案 1 :(得分:0)
这应该有效:
text = str(z).translate(None,"([]){},\"'").replace(' ','\t')
# convert to list
x = text.split()
# group by four items
x = [x[0::4],x[1::4],x[2::4],x[3::4]]
# convert back to text lines
print "\n".join(" ".join(i) for i in [x[0::4],x[1::4],x[2::4],x[3::4]])