要列出的CSV文件

时间:2013-01-09 12:42:59

标签: python list text csv

我有一个CSV文件,它由第一列中的单词组成。 (每行1个字)

我需要打印这些单词的列表,即

CSV文件:

a
and
because
have

想要输出:

"a","and","because","have"

我正在使用python,到目前为止我有以下代码;

text=open('/Users/jessieinchauspe/Dropbox/Smesh/TMT/zipf.csv')
text1 = ''.join(ch for ch in text)
for word in text1:
    print  '"' + word + '"' +','

这是回归:

"a",
"",
"a",
"n",
...

虽然我需要一行一行,而不是按字符而是按字。 谢谢你的帮助!

编辑:这是CSV文件预览的屏幕截图 preview of the CSV file

5 个答案:

答案 0 :(得分:4)

直接循环遍历文件:

with open('/Users/jessieinchauspe/Dropbox/Smesh/TMT/zipf.csv') as text:
    print ','.join('"{0}"'.format(word.strip()) for word in text)

以上代码:

  • 循环文件;这会给你一行(包括换行符\n)。
  • 使用.strip()删除单词周围的空格(包括换行符)。
  • 使用.format()将单词放在引号中('word'变为'"word"'
  • 使用','.join()将所有引用的单词合并为一个列表,其中包含逗号。

答案 1 :(得分:1)

当你这样做时:     文本=开放( '/用户/ jessieinchauspe /升降梭箱/ Smesh / TMT / zipf.csv') 它基本上返回一个迭代器,每行作为一个元素。如果你想要一个清单,你确定每行只有一个单词而不是你需要做的就是

  result=list(text)
  print result

否则你只能这样得到第一句话:

 result = list(x.split(',')[0] for x in text)
 print result

答案 2 :(得分:1)

您也可以使用CSV模块:

import csv

input_f = '/Users/jessieinchauspe/Dropbox/Smesh/TMT/zipf.csv'
output_f = '/Users/jessieinchauspe/Dropbox/Smesh/TMT/output.csv'

with open(input_f, 'r') as input_handle, open(output_f, 'w') as output_handle:
    writer = csv.writer(output_handle)
    writer.writerow(list(input_handle))

答案 3 :(得分:0)

如果在print语句的末尾加上逗号,则会抑制换行符。

print  '"' + word + '"' +',',

将在一行上为您提供输出。

答案 4 :(得分:0)

print ','.join('"%s"' % line.strip() for line in open('/tmp/test'))