使用python将事物粘贴到单独的列中

时间:2014-05-30 18:50:08

标签: python excel csv

我是python的新手,我正在尝试编写一个代码,将CSV中的一列中的项目,并将其粘贴到另一个csv的4列中(这最终将是一个测验,我最终会争抢他们)。到目前为止,我已经能够获得代码打印出我想要4次的列中的项目,但是这些项目只出现在一列中,当我想在4列中包含每个项目一次时。

这就是我所拥有的:

import csv

reader = csv.reader(open('name.csv', 'rU'), dialect = 'excel')
for column in reader:
    print column[1]
    print column[1]
    print column[1]
    print column[1]

这是将第1列中的项目打印出四次到新的csv中,如下所示:

name
name
name
name

...当我希望它看起来像:

name   name   name   name

(在4栏中)。

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:2)

在python中,当您执行以下代码时:

print "Something"

...最后一条新线卡在了最后,导致你所看到的东西。

有两种方法可以解决这个问题:

(1)用print语句在行尾添加一个逗号,如:

>>> def fn():
...    print "1", 
...    print "2", 
...    print "3",
...    print "4"
... 
>>> fn()
1 2 3 4

这将插入空格字符而不是换行符。

(2)使用string formatting,如:

>>> print "{0}    {0}    {0}    {0}".format("value")
value    value    value    value

答案 1 :(得分:0)

print函数会自动在其收到的文本末尾添加换行符。要覆盖它,您可以这样做:

reader = csv.reader(open('name.csv', 'rU'), dialect = 'excel')
for column in reader:
    print(column[1], end='\t')
    print(column[1], end='\t')
    print(column[1], end='\t')
    print(column[1], end='\t')

或更pythonic版本:

reader = csv.reader(open('name.csv', 'rU'), dialect = 'excel')
print '\t'.join([column[1]]*4)

答案 2 :(得分:0)

首先,如果你想在一行上打印,你可以这样做:

print column[1], column[1], column[1], column[1]

而不是4次打印。

第二,如果您打算将此内容写入CSV文件,请使用csv.writer

reader = csv.reader(open('name.csv', 'r'), dialect = 'excel')
writer = csv.reader(open('output.csv', 'w'), dialect = 'excel')

for column in reader:
    writer.writerow( [ column[1] ] * 4 )