source= numpy.array([8,9])
sink= numpy.array([7,8])
pop_percentage= numpy.array([50,70,85])
buses= numpy.array([100,150,200])
bus_capacity= numpy.array([60,90])
a=[source,sink,pop_percentage,bus_capacity,buses,['mat1','mat2']]
file = open("/home/deep/Desktop/DATA/First_Data_File.txt", "w")
for list in itertools.product(*a):
for line in list:
print>>file,list[0],list[1],list[2]
我已经编写了上面的代码,我在文件中得到了以下格式:
8 7 50
我需要使用分号分隔项目,如下所示:
8; 7; 50
请建议最狡猾的方式来获得这个。提前谢谢。
答案 0 :(得分:2)
print>>file, ";".join([str (l) for l in list[:3]])
答案 1 :(得分:0)
您可以使用python3中的print函数:
如果使用Python 3.x:
print(*list, sep=';', file=fd)
如果使用Python 2.x(至少适用于2.7)
from __future__ import print_function
...
print(*list, sep=';', file=fd)
注意:只要您使用from __future__ import print_function
,print
就会成为整个脚本文件的Python3函数......
答案 2 :(得分:0)
我个人更喜欢使用format
来完全按照我想要的方式格式化我的字符串:
format_string = "{};{};{}"
print(format_string.format(list[0], list[1], list[2]))
您还可以使用print命令写入文件吗?我建议改为使用file.write
:
with open('file', 'w') as f:
f.write(format_string.format(list[0], list[1], list[2]))
使用with
命令可确保正确处理文件,从而无需file.close()
。