だから私はmatplotlib.mlabのcsv2recのソースファイルを理解しようとしています。csvファイルを取得し、データを特定の形式に解析するために使用されます。したがって、文字列「234」を取り、それをintに変換する場合があります。または、日付文字列を取得してpythondatetimesにします。
def get_converters(reader):
converters = None
for i, row in enumerate(reader):
if i==0:
converters = [mybool]*len(row)
if checkrows and i>checkrows:
break
#print i, len(names), len(row)
#print 'converters', zip(converters, row)
for j, (name, item) in enumerate(zip(names, row)):
func = converterd.get(j)
if func is None:
func = converterd.get(name)
if func is None:
#if not item.strip(): continue
func = converters[j]
if len(item.strip()):
func = get_func(name, item, func)
else:
# how should we handle custom converters and defaults?
func = with_default_value(func, None)
converters[j] = func
return converters
この関数に関する私の問題は「コンバーター」です。それはNoneとして始まります。その後、'func = converters [j]' j私が知っているのは、列挙によって作成されたばかりの数値です。したがって、jでインデックス付けされた対応するコンバーターアイテムを探しています。しかし、それは正しくないので、コンバーターには何もありませんか?Pythonプログラムを上から下に読む必要がない場合を除いて?その場合、関数は次の2行の「iflen(item.st .... etc)」または「else:」セクションから取得します。しかし、私はそれを上から下に読まなければならないと思いました。
他に重要なことがあるかどうかわからないので、関数全体を含めました。converterdは、ユーザーがコンバーターを自動的に見つけるためのパラメーターとして提供できると私が信じている辞書マッピングです。checkrowsは、有効性をチェックするために最初にパラメーターとしてユーザーによって提供される単なる数値です。デフォルトではNoneです。私はまだ初心者なので、fyiだけです。=)
みんな、ありがとう。このサイトはとても役に立ちます!