1

こんにちは、現在、さまざまなログ ファイル xyz.log から情報を抽出するコードがいくつかあります。情報を抽出したい別のファイルを含むサブディレクトリ (xyz) もあります。サブディレクトリを開くのに問題があります。現在のコードは次のとおりです。

for file in log_files:
if file == "1.log":
    linenum = 5
else:
    linenum = 4
with open(file, 'r') as f:
    for i, line in enumerate(f):
        if i == linenum:
            try:
                e = float(line.strip().split()[10])
                xyz = file[:-4]
                #here's where I would like to get the additional data
                    for i, line in enumerate(g):
                        if i == 34:
                            d = float(line.strip().split()[3])
                data.append( (xyz, e, d ))

パスを %xyz/fort.12 に設定して with open を使用しようとしましたが、構文エラーがスローされました。ここでは os モジュールが私の友人であると推測していますが、それを使用するのはかなり苦手です。誰にもアイデアはありますか?

4

1 に答える 1

1

あなたがしたいos.path.join。任意の数のパラメーターを受け入れ、使用しているオペレーティング システムに適したパス区切り記号を使用してそれらをまとめます。

for file in log_files:
if file == "1.log":
    linenum = 5
else:
    linenum = 4
with open(file, 'r') as f:
    for i, line in enumerate(f):
        if i == linenum:
            try:
                e = float(line.strip().split()[10])
                xyz = file[:-4]
                with open(os.path.join(xyz,'fort.12')) as g:
                    for i, line in enumerate(g):
                        if i == 34:
                            d = float(line.strip().split()[3])
                data.append( (xyz, e, d ))
于 2013-06-19T14:08:35.870 に答える