2014-09-28 30 views
1

我有兩個帶數字的列表,我希望它們能很好地寫出來,就像我從print item1, item2得到的一樣。任何人都可以幫忙嗎?用寫功能寫好格式化的列表

outfile = open("tabal_t_y.dat", "w") 
for item1, item2 in zip(t, y): 
    outfile.write() 
outfile.close() 
+0

你應該使用'with'打開你的文件 – 2014-09-28 11:02:13

回答

2

print

評估每個表達反過來,並寫入所得到的對象...如果一個對象是不是字符串,它首先被轉換爲使用用於字符串轉換的規則的字符串...的空間是每個對象之前寫的(轉換和)寫入...

但是,如果你在文檔更遠讀一位:

print也具有擴展形式...有時稱爲「print v形」。在此形式中,>>之後的第一個表達式必須評估爲「類文件」對象...後續表達式將打印到此文件對象中...

所以,你不要outfile.write做到這一點在所有的,你可以這樣做:

print >>outfile, item1, item2 

但是,如果你想使用outfile.write,你可以做一切print自己呢,有兩種不同的方式:

首先,可以輸出轉換爲字符串,然後用空格加入他們:

outfile.write(' '.join(map(str, (item1, item2)))) 

outfile.write(str(item1) + ' ' + str(item2)) 

def write_things(f, *things): 
    f.write(' '.join(map(str, things)))) 
write_things(outfile, item1, item2) 

...或任何你感到舒服的東西。

或者你可以使用string formatting

outfile.write('{} {}'.format(item1, item2))