2014-09-04 73 views
0

我有一個腳本可以工作,並在python shell窗口中打印輸出。我想將這些行寫入文件而不是shell。在python中將打印後跟逗號轉換爲writelines

for k in keys: 
    print '%s' % (d[k]), 
print "" 

我這樣做是因爲逗號將打印爲單行(所有按鍵成一行),然後讀取第二行,打印...,但我想它寫進文件相同方式它打印到控制檯。我試圖使用.join(),但我做得不對。我已經貼了我試過到目前爲止..

val_list = [] 
for k in keys: 
    val = '%s' % d[k] 
    val_list.append(val) 
print ''.join(val_list) 

這輸出所有的按鍵爲單行,所以當它通過for循環,它應該打印的第一行打印鍵,然後進入下一個行打印鍵,然後第三行等等。每行都是一組獨特的值,所以我需要它。最後,我想把所有的密鑰寫入文件

+0

是''\ n'.join(...'你想要什麼 – snahor 2014-09-04 02:33:16

+0

我試過\ n和呢?打印出k1 \ n k2 \ n k3等等,然後等到下一行,我需要k1k2k3k4k5 .... \ n k1k2k3k4k5 .... \ n等等 – Doodle 2014-09-04 02:43:54

+0

可能是我應該使用izip ???但我是不知道這是否正確 – Doodle 2014-09-04 02:45:13

回答

0

一個簡單的方法來做到這一點是使用>>如下:

with open('somefile.txt', 'w') as f: 
    for k in keys: 
     print>>f, '%s' % (d[k]), 
    print>>f, "" 
+0

真棒!!!這工作。我不知道爲什麼我沒有拿出這些想法,甚至一個看着這麼多的線程...非常感謝! – Doodle 2014-09-04 03:23:32

0

我想我明白你想要什麼。

with open('somefile.txt', 'w') as f: 
    val_list = [] 
    for k in keys: 
     val = '%s' % d[k] 
     val_list.append(val) 
    f.write(' '.join(val_list) + '\n\n') 
+0

這個工作,它給出輸出作爲第一行\ n第一行附加第二行\ n .... so on – Doodle 2014-09-04 03:24:09