ちょっと修正
id:bonlife さんより助言を頂いたのでスクリプトをちょこっと修正してみました。
def input_from_csv(file,lang="日本語"): try: # csv ファイルを開く f=open(file) reader=csv.reader(f) except IOError: # ファイルを開くのに失敗したら None を返す return None else: # 1行目を取り出す row=reader.next() # lang に対応する列を決める try: lang=row.index(lang) # if 決まらなかったら except ValueError: # None を返す return None # lang が "ラベル" だった場合も None を返す if lang==0: return None # end if # リストを作成する data=[(x[0], x[lang]) for x in reader] # ファイルを閉じる f.close() # リストを返す return data # テスト用 def print_data(file,lang): print "言語:"+lang data=input_from_csv(file,lang) if data==None: print "データがありません" else: for d in data: print d[0], d[1] print "========" # 実行 if __name__=="__main__": print_data("string_table.csv","ラベル") print_data("string_table.csv","日本語") print_data("string_table.csv","英語") print_data("string_table.csv","フランス語") print_data("no_exist.csv","日本語")
言語:ラベル データがありません ======== 言語:日本語 STR_HELLO こんにちは。 STR_BYE さようなら。 ======== 言語:英語 STR_HELLO Hello. STR_BYE Good bye. ======== 言語:フランス語 データがありません ======== 言語:日本語 データがありません ========
ちょっとスッキリした感じです。
テストコードで存在しないファイルも指定するように変更してみましたが
これもうまく行っているようです。
id:bonlife さんありがとうございました。