2016-11-24 20 views
0

我这里有一些代码:打印所选列从CSV文件在Python

with open("dsasa.csv", 'rb') as csvfile: 
content = csv.reader(csvfile, delimiter='|') 
for row in content: 
    print row``` 

我想打印在以下格式从csv文件4列2,3:

4556 | 432432898904 | Joseph Henry
4544 | 54522238904 | Mark Mulligan

我有两个我遇到的问题。一个是分隔符管(|)不出现在列之间。第二个问题是,我无法通过手动方式打印我想要的特定列,即。 print row[2], row[3], row[4]

我看了一下在线信息并尝试了几种不同的解决方案,但我似乎无法找到让这个工作的路线。

任何帮助将不胜感激。

谢谢!

回答

1

试试这个:

with open("dsasa.csv", 'rb') as csvfile: 
    content = csv.reader(csvfile) 
    for row in content: 
     print "|".join([row[2],row[3],row[4]]) 

csv.readerdelimiter参数指的是输入文件不输出。

+0

谢谢。我发现一个解决方案非常类似于你之前发布的。我唯一的区别就是在最后一行我写: 'print row [2],“|”,row [3],“|”,row [6],row [7]' 是第6排和第7排之间的每个柱子之间的空间,但没有管子。但是为了在球上,我给你答案。我也使用'next(Content,None)'去掉头部 –

0

作为分隔符在列之间出现什么?你确定它是'|'吗?而不是逗号?我猜测,因为你没有正确的分隔符,你不能使用打印行[2],行[3],行[4]。你能发布一行CSV吗?

+0

CSV文件中的示例行在哪里? –

+0

我删除了完整的分隔符,它现在打印我想要打印的特定行。但是,我仍然想在其中添加'|'符号。 –

+0

其实我添加了一个“|”在打印语句时每行之间。 –