Python3系で以下のコードの中で変数(len)の使い方に関して分からない物があります。
以下のコードは別のcsvファイルから行データを取得して、その取得した行の大きさによってif文による
処理を分岐させていると思うのですが、この最初に定義されているlen=0の0が何を意味しているのかがわかりません。
かなり初歩的な物かとは思うのですが、この変数の役割についてご教授頂けると幸いです。
def _load_file(file0,file1): f0 = open(file0, "r", encoding="utf-8", errors="", newline="") f1 = open(file1, "r", encoding="utf-8", errors="", newline="") fr0 = csv.reader(f0, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) fr1 = csv.reader(f1, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) return f0, f1, fr0, fr1 def _id_choice(fr,f2,ind_row,ind_row2): len0 = 0 for row in fr: if len0>0: a, b = row[0], row[ind_row] b1 = b.split("/") for x in b1: if x!="": row_new = _replace(row[ind_row2]) row_new1 = row_new.split("/") ### check later! ### if len(row_new1)>1: if len(row_new1)!=len(b1): print("different numbers of items at line %s" % len0) c = row_new1[b1.index(x)] # check later f2.write("%s/%s\t%s\r\n" % (x,a,c)) # check later else: c = row_new1[b1.index(x)] f2.write("%s/%s\t%s\r\n" % (x,a,c)) else: f2.write("%s/%s\t%s\r\n" % (x,a,row_new)) len0 += 1 return len0
file0 = "./node_file2.csv" file1 = "./node_file3.csv" task_items = [0,1,2,3,4] # item number for each task if switch == 1: f0, f1, fr0, fr1 = _load_file(file0,file1) file2 = "./id_choice.tsv" f2 = codecs.open(file2, "w", "utf-8") f2.write("%s\t%s\r\n" % ("ID_bef/aft","choice")) len2 = _id_choice(fr0,f2,6,7) # depends on csv file len3 = _id_choice(fr1,f2,3,4) # depends on csv file f0.close() f1.close() f2.close() print(file2, len2, len3)
回答2件
あなたの回答
tips
プレビュー