python - Python为sqlnet.ora中的多行文本制作oneliner
问题描述
我有以下文字:
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(MD5,SHA1)
WALLET_LOCATION=
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=
(DIRECTORY=/oracle/.wallets)
)
)
SQLNET.WALLET_OVERRIDE=TRUE
并希望得到它:
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(MD5,SHA1)
WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/oracle/.wallets)))
SQLNET.WALLET_OVERRIDE=TRUE
使用本机 Python(没有额外的外部包)最有效的方法是什么?
可以有其他多行参数。而且我事先不知道他们可以有多少括号。
编辑1。我不需要确切的解决方案。至少只是一个算法。
解决方案
您可以做的一种方法是使用行号作为开始和结束,然后连接它们之间的所有行。顺便说一句,我将您的文本保存在一个文件中,但您也可以直接将其提供给代码。
file1 = open('myfile.txt', 'r')
Lines = file1.readlines()
count = 0
lineNumStart, lineNumEnd = 1, 7
outStringJoined = ""
for line in Lines:
if count>=lineNumStart and count<lineNumEnd:
outStringJoined += line.strip()
else:
outStringJoined += line
count+=1
print(outStringJoined)
为了使其更灵活,可以使用 ("(", ")") 之类的对。如果找到该对的第一个元素,则代码将继续连接,直到找到匹配的对!
推荐阅读
- python - 如何生成具有指定 SNR 的复杂白噪声?
- php - 如果没有结果,则隐藏结果标题
- python - 尝试在 python 中解码 HTTP 响应。无法弄清楚 JSON 解码
- python - 有没有办法可以将巨大的 CSV 文件拆分为多个 PDF?
- docker - Odoo 12 docker compose 不显示已安装的额外插件
- javascript - 以有效的方式从对象数组更新 javascrips 中的字典
- r - 如何使用作为 R 中的函数参数提供的变量名称来命名图形的标题?
- java - 使用以下几个队列请求-回复
- flutter - 如何为非消耗品设置应用内购买
- python - 如何从numpy数组返回索引