-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReplace_File.py
53 lines (44 loc) · 1.73 KB
/
Replace_File.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import cx_Oracle
import os
import time
os.environ.update([('NLS_LANG', '.UTF8'),('ORA_NCHAR_LITERAL_REPLACE', 'TRUE'),])
timenow = time.strftime('%Y-%m-%d_%H%M%S')
CONNECTSTRING = 'hr/hr@LOCALHOST:1521/xe'
dirIN = 'C:\\Users\\ADMIN\\Desktop\\FILES\\IN'
dirOUT = 'C:\\Users\\ADMIN\\Desktop\\FILES\\OUT'
def connect_oracle(CONNECTSTRING):
print('Connecting to Oracle=> '+CONNECTSTRING)
connection = cx_Oracle.connect(CONNECTSTRING)
cursor = connection.cursor()
print('Connected to Oracle.\n')
return cursor
def run_replace_plsql(module,cursor,p_in_txt):
p_out_txt_or = cursor.var(str)
cursor.callproc('replace_text_proc',[p_in_txt,module, p_out_txt_or])
#print('Procedure Called.')
return p_out_txt_or.getvalue()
def save_new_file(new_file_path,new_text):
newFile = open(new_file_path, 'w')
newFile.write(new_text)
newFile.close()
print('New file created=> '+new_file_path)
def process_files():
cursor = connect_oracle(CONNECTSTRING)
folders = os.listdir(dirIN)
for folder in folders:
print("\n <=========================="+folder+"==========================>\n")
folderdir = dirIN+"\\"+folder
files = os.listdir(folderdir)
new_folder_dir = dirOUT+"\\MYFILES_"+timenow+"\\"+folder
os.makedirs(new_folder_dir)
for file in files:
var_txt,var_file,p_out_txt = "","",""
#print(folderdir+'\\'+file)
var_file = open(folderdir+'\\'+file)
var_txt = var_file.read()
#print(var_txt)
p_out_txt = run_replace_plsql(folder+'/'+file,cursor,var_txt)
save_new_file(new_folder_dir+'\\'+file,p_out_txt)
var_file.close()
process_files()
print('\n\nEnd of Script.')