나는 column_list.csv
에있는 ALL_TAB_COLUMNS
(TABLE_NAME
및 COLUMN_NAME
열만 추출)과 일치하는 파일을 .SQL
개 묶어 놓은 폴더가 있습니다.dic 및리스트를 반복하는 방법
내 목표는 같은 출력을 발생시키는 각 리포트에 대해 사용되는 테이블/컬럼의 관계를 가지고있다 :
sql_file_name.sql | table_name | column_name
내가 변수 제 중첩 루프 초에서 움직일 때에서 '있어 보인다 '도달 Python (2.7.13)
신규로 취급 :
import os
import csv
path = "./search_files"
folder = os.listdir(path)
search_dict = csv.DictReader(open("column_list.csv"))
for files in folder:
files = os.path.join(path, files)
file = open(files, "r")
sql = file.readlines()
sql = [x.strip() for x in sql] # Remove \n
hit_count = 0
for i in sql:
i = i.upper() # Make SQL code UPPERCASE
print str(hit_count) + ": " + i # i has values here
hit_count = hit_count + 1
for row in search_dict:
print str(hit_count) + ": " + i # i is blank here
hit_count = hit_count + 1
if row['TABLE_NAME'] in i or row['COLUMN_NAME'] in i:
print row['TABLE_NAME'] + " | " + row['COLUMN_NAME']
궁금해서 출력물을 붙여 넣을 수 있습니까? 나는 당신이 당신의 SQL 파일에 몇 가지 빈 줄을 의심 ... – kaza
물론 할 수 있습니다. '455 : CASE LSZ55EXCC2 = '05'THEN '07'ELSE LSZ55EXCC2의 END, 1456 '' 1,457 : IMLITM, 1,458 : LSZ55TABC, 1,459 : LSZ55COMP이 첫 번째 인쇄 출력 추출물 인 , 1,460 : LSZ55AENT, 1,461 : LSZ55MENT, 1,463'이것은 secound 하나 인 : '6469 : 6470 : 6471 : 6472 : 6473 : 6474' 마지막 인쇄물이 출력되지 않습니다. – Fdiang
잠시만 기다려주세요. 가능성이 있습니다. 당신의'search_dict'는 비어 있습니다! 당신의 산출물의 모습. 그러므로'column_list.csv'가 적절한 지 확인하십시오. 'column_list.csv'를 cat하고 질문을 편집하여 처음 몇 줄을 보여줄 수 있습니까? – kaza