フロー データを含むいくつかのデータ ファイルがあります。例えば、
9/12/1999 0
13/12/1999 2544
14/12/1999 2552
15/12/1999
16/12/1999
18/12/1999 3039
19/12/1999 3043
すべてのデータ ファイルを読み取り、Date Flow1 Flow2 などの形式の新しい出力ファイルに書き込むコードを作成しました。
また、連続した日付で書きました(その日付のデータがない場合は、出力ファイルに0を書き込みます)。以下のスクリプトには、その部分は含めません。
私が抱えている問題は、日付のある行があり、データ ファイルにフロー データがない場合です (たとえば、上記の例の行 4、5)。コードは、その行に 0 ではなく空白の値を与えます。単純なことだと思っていましたが、理解できませんでした。誰でもそれで私を助けることができますか?私のコードは
for Qfilename in Q_filenamelist:
Qfileopen = open(Qfilename,'r')
for line in Qfileopen:
line = line.rstrip()
if not line.startswith("and") and not line.startswith("Time") and not line.startswith("Date"): #ignore headers
Qwordslist = line.split(',')
time = Qwordslist[0]
flow = Qwordslist[1]
if not time in time_list:
time_list.append(time)
index = time+" "+Qfilename
Qourdict[index] = flow
Qfileopen.close()
time_list.sort(key=lambda x: datetime.strptime(x,'%d/%m/%Y'))
#write output data
outfile = open(outfilename,'w')
outfile.write("Date,")
for Qfilename in Q_filenamelist:
Qfilename = Qfilename.split(".")[0]
outfile.write(Qfilename+',')
outfile.write('\n')
for time in time_list:
outfile.write(time+',')
for Qfilename in Q_filenamelist:
index = time+" "+Qfilename
grabflow = Qourdict.get(index,"0.0")
if grabflow == " ":
outfile.write("0.0"+',')
else:
outfile.write(str(grabflow)+',')
outfile.write('\n')
outfile.close()
どうもありがとう。