.SQL
のファイルを束ねたフォルダがあり、これはALL_TAB_COLUMNS
(TABLE_NAME
とCOLUMN_NAME
の列はcolumn_list.csv
にしかありません)の抽出と一致したいファイルです。私が二から三番目のネストされたループに移動したときに変数が外の」得たものと思わ
sql_file_name.sql | table_name | column_name
dicとリストを繰り返す方法
:よう
私の目的は、出力を生成し、各レポートのために使用されるテーブル/列の関係を持つことです「リーチ、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' を '07' ELSE LSZ55EXCC2端、 1456: ''、 1457:IMLITM、 1458:LSZ55TABC、 1459:LSZ55COMPこれは、最初の印刷の出力からの抽出物であります、 1460:LSZ55AENT、 1461:LSZ55MENT、 1462:0、 1463: 'これはsecound一つからなる : ' 6469: 6470: 6471: 6472: 6473: 6474: ' 最後のプリントは出力されません – Fdiang
ちょっと待ってください、それは可能ですあなたの 'search_dict'は空です!あなたの出力の外観。したがって、 'column_list.csv'が適切であることを確認してください。 'column_list.csv'をcatして最初の数行を編集できますか? – kaza