1

単にcsvファイルを開いて、そのファイルの行を印刷しようとしています。ファイルを文字列としてこの関数に渡すと、出力は文字列の内容であり、ファイルの行ではありません。

def _print_rows(filename):
    with open(filename, 'rt') as opened_file:
        read_file = csv.reader(opened_file):
            for row in read_file:
                print row
                raw_input()
        opened_file.close()

>>> module_name._print_rows('first_class_profile.csv')  
['f']

['i']

['r']

['s']

['t']

['_']
4

2 に答える 2

3

投稿したコードにエラーがあることを考えると、実際のコードを投稿していないと思います。

あなたの_print_rows関数は、ファイルの内容ではなく、ファイル名の文字を実際に出力しています。csv.readerこれは、csv ファイルのファイル名を、開いているファイルではなくに渡した場合に発生します。

>>> import csv
>>> filename = 'first_class_profile.csv'
>>> reader = csv.reader(filename) # whoops! should have passed opened_file
>>> for row in reader:
...     print row
...
['f']
['i']
['r']
['s']
['t']
['_']
['c']
['l']
['a']
['s']
['s']
['_']
['p']
['r']
['o']
['f']
['i']
['l']
['e']
['.']
['c']
['s']
['v']
于 2012-11-21T22:19:10.590 に答える
0

他の人が指摘したように、構文エラーのためにコードが実行されていないことがわかりました。また、ファイルを閉じる必要はありません。 with ステートメントがそれを処理します。あなたのコードを修正した後、それはうまくいくようです:

import csv
def _print_rows(filename):
    with open(filename, 'rt') as opened_file:
        read_file = csv.reader(opened_file)
        for row in read_file:
            print row
            raw_input()

_print_rows('first_class_profile.csv')
于 2012-11-21T22:31:36.743 に答える