我是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栏中)。
任何帮助将不胜感激
答案 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 )