フォルダ内の複数のファイルを比較し、各行のDDの最大値をフォルダ内の他のファイルの対応する行。例:フォルダに10個のファイルがあり、その中にDD =いくつかの浮動小数点数の行が含まれています。-0.903999と書いてあります。フォーマットはDD = -0.903999である。それぞれの値はもちろん違います。私が期待した結果は、ファイル3などにFILE2とLINE1にでfile1のにライン1をライン1を比較した後、それを印刷しなければならないということです新しいファイルの1行目で最大のDD値を持つ行、2行目と同様です。複数のファイルの行を比較し、最大値を含む各行をファイルに出力する
これまでの結果:ファイルを比較した後に、line1、line2、line3などの最大DDを含む行の代わりに、フォルダ内のすべてのファイルごとに1行の結果しか得られません。私は軌道に乗っているが、ちょうどこの1ビットです。ヘルプここ
いただきありがとうございます、私は(ちょうど2つのファイルと数行で)これまで
resultLines = []
filemaxDD = -999999
filemax = ""
linemax = ""
def myproces(root, file):
f = open(os.path.join(root, file))
mylines = f.readlines()
maxline = ""
maxDD = -999999
global filemaxDD
global filemax
global linemax
for line in mylines:
if 'DD=' in line:
stPos = line.index('DD=') + 4
for i, s in enumerate(line):
if (s == ';') & (i > stPos):
break
dd = float(line.__getslice__(stPos, i))
if dd > maxDD:
maxDD = dd
maxline = line
if (maxDD > filemaxDD):
filemaxDD = maxDD
linemax = maxline
filemax = file[:-4]
for root, dirs, files in os.walk(dirPath):
for file in files:
if file.endswith(".txt"):
processFile(root, file)
resultLines.append(filemax + " " + linemax)
result_file = open('final.txt', 'w')
result_file.writelines(resultLines)
result_file.close()
例ファイルを持っているものです。
file 1 contains this:
#searchE google yahoo bing
1 0 2 h=1;DD=-0.1;f=0.5;i=3
1 0 2 h=2;DD=-0.6;f=1.2;i=1
1 0 2 h=1;DD=-0.2;f=0.5;i=3
1 0 2 h=2;DD=-0.6;f=1.2;i=1
file 2:
#searchE google yahoo bing
1 0 2 h=1;DD=-0.2;f=0.5;i=3
1 0 2 h=2;DD=0.3;f=1.2;i=1
1 0 2 h=1;DD=-0.2;f=0.5;i=3
1 0 2 h=2;DD=-0.1;f=1.2;i=1
例えばライン上に与えられた期待結果:代わりreadlinesを用いる
#searchE google yahoo bing
file1.txt 1 0 2 h=1;DD=-0.1;f=0.5;i=3
file2.txt 1 0 2 h=1;DD=0.3;f=0.5;i=3
StackOverflowの最初の質問にようこそ。あなたの問題を示すサンプルファイルと、期待される出力、望ましい出力、エラーメッセージの完全なトレースバックを表示してください。基本的には、どうしてあなたがいかに "つまらない"ように見えるかを見せてください。 [最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)を読んで従う。 –
おそらく、あなたのアルゴリズムを 'key'-' value '構造体を使って微調整する必要があります。 'DD'とファイルを解析するたびに、値を更新する必要があるかどうかを比較します。 –
なぜこれが下落したのですか? – jackpetes