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 ))

我尝试使用 with open 并将路径设置为 %xyz/fort.12 但这引发了语法错误我猜 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 回答