2014-09-04 37 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