本文内容来自 YashanDB 官网,原文内容请见 共享利用 Python 脚本解决 Oracle 的 SQL 脚本 @@用法 - YashanDB
import os
def get_all_files(root_path):
"""
递归获取指定路径下所有文件的绝对路径
:param root_path: 需要递归的根目录路径
:return: 文件绝对路径列表
"""
all_files = []
for dir_path, dir_names, file_names in os.walk(root_path):
for file_name in file_names:
file_path = os.path.join(dir_path, file_name)
all_files.append(file_path)
return all_files
if __name__ == '__main__':
current_path = os.path.dirname(os.path.abspath(__file__))
print ("当前目录是:", current_path)
filenames = get_all_files(current_path)
for filename in filenames:
if filename.endswith(".sql"):
filename_dirname = os.path.dirname(filename)
filename_basename = os.path.basename(filename)
filename_orig = filename + ".orig"
print ("\n 当前处理:"+filename)
with open(filename, 'r') as file:
lines = file.readlines()
need_rename_file = False
newlines = []
for line in lines:
if line.startswith("@@"):
newlines.append(line.replace("@@","@" + filename_dirname + "\\", 1))
need_rename_file = True
else:
newlines.append(line)
for newline in newlines:
print(newline, end="")
if need_rename_file:
os.rename(filename, filename_orig)
with open(filename, 'w') as file:
file.writelines(newlines)
print ("\n 处理完毕:" + filename)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3071694/ ,如需转载,请注明出处,否则将追究法律责任。