0

最初の列に単語で構成されたCSVファイルがあります。(1行に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",
...

私はすべてを1行で必要としますが、文字ではなく単語で必要です。ご協力ありがとうございました!

編集:これはCSVファイルのプレビューのスクリーンショットです CSVファイルのプレビュー

4

5 に答える 5

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つのリストに結合するために使用します。
于 2013-01-09T12:45:40.337 に答える
1

次の場合:text = open('/ Users / jessieinchauspe / Dropbox / Smesh / TMT / zipf.csv')これは、基本的に各行を要素として持つイテレータを返します。その中からリストが必要で、1行に1語しかない場合は、必要なのは1行だけです。

  result=list(text)
  print result

そうでなければ、あなたはそのようにだけ最初の単語を得ることができます:

 result = list(x.split(',')[0] for x in text)
 print result
于 2013-01-09T12:50:03.503 に答える
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))
于 2013-01-09T12:56:01.977 に答える
0

printステートメントの最後にコンマを置くと、改行が抑制されます。

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

1行で出力を提供します。

于 2013-01-09T12:46:56.307 に答える
0

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

于 2013-01-09T12:51:33.507 に答える