使用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 )
print
function会自动将新行字符添加到所接收文本的末尾。 要覆盖这个,你可以这样做:
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)