使用python在不同的列中粘贴东西

我是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列)。

任何帮助将不胜感激

在Python中,当你执行如下代码:

 print "Something" 

…有一个换行符卡住,导致你所看到的。

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

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

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

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

(2)使用string格式 ,如:

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

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

 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 ) 

printfunction会自动将新行字符添加到所接收文本的末尾。 要覆盖这个,你可以这样做:

 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)