This domain may be for sale!

CSVファイルの加工が必要で、CSV中のいくつかの列を先頭にくっつけるということをするのに、csv モジュールを使おうと。CSVファイルはユーザが Excel で加工しているのが前提なのでクォートがついたり消えたり、はたまた末尾のカンマが無くなっているなんてのは当然のようにあるわけで、その状態はそのまんまで残したい。列の抽出をするのには csv モジュールを使いたい。csv.reader のパラメータは「イテレータ」なので、ファイルから読むならこんな感じかな。 for cols in csv.reader(open(path)): pass これで目的の列の抽出は配列相手にすればいいから楽なんだけど、これだと元の行の状態を残せないので、「イテレータ」作ってみた。 class CurLine: def __init__(self, path): self.file = open(path)
昨日のコメントによる擬似コードを実際のスクリプトで実装したものが以下になります。 # 1. csv からラベルと文字列データの組を作成し、入力データとする # file : 入力ファイル # lang : 採用する言語 # return 成功したら (label, string) のタプルのリスト. 失敗したら None. def input_from_csv(file,lang="日本語"): # csv ファイルを開く f=open(file) # if 失敗したら if f==None: # None を返す return None # 行のリストを作成する rows=[r for r in csv.reader(f)] # 1行目を取り出す r=rows.pop(0) # lang に対応する列を決める try: lang=r.index(lang) # if 決まらなかったら e
まず CSV を読み込んで入力データを整形する部分を作ります。プログラムは Python を使います。 Python には CSV を扱うモジュールがあるのでこれを利用しようと思いますが、 初めてなので動作をみてみます。 まずはプログラムの流れを確認します。使用するデータはスプレッドシートから string_table.csv という名前で出力した CSV ファイルです。 #coding:shift-jis # csv ファイルを開く csvfile=open("string_table.csv") # if ファイルが開けたら if csvfile!=None: # for csvリーダーの提供する各行について for row in csv.reader(csvfile): # 表示する print row # end for # end if このスクリプトはみんなのPythonのサン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く