2013-06-19 4 views
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로 설정 경로로 개방과 함께 사용하여 시도했지만 그게 내가 '구문 오류가 발생했습니다 오스 모듈을 추측하는 것은 여기에있는 내 친구지만, 나는 그것을 사용하는 데 꽤 귀찮은 사람이다. 누구든지 아이디어가 있습니까?

답변

1

당신은 os.path.join을 원합니다. 그것은 매개 변수의 수를 수용하고 당신이있는 어떤 운영 체제에 대한 올바른 경로 seperator를 사용하여 함께 넣어.

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