python - 将当前行追加到上一行
问题描述
我正在尝试解析.ldif
文件但未能获得所需的输出。任何帮助深表感谢。
这是我正在使用 python 做的事情:
lines = open("use.ldif", "r").read().split("\n")
for i, line in enumerate(lines):
if not line.find(":"):
lines[i-1] = lines[-1].strip() + line
lines.pop(i)
open("user_modified.ldif", "w").write("\n".join(lines)+"\n")
use.ldif(输入文件)
dn: cnh
changetype: add
objectclass: inetOrgPerson
objectclass: cdsUser
objectclass: organizationalPerson
objectclass: Person
objectclass: n
objectclass: Top
objectclass: cd
objectclass: D
objectclass: nshd shdghsf shgdhfjh jhghhghhgh
hjgfhgfghfhg
street: shgdhgf
dn: cnh
changetype: add
objectclass: inetOrgPerson
objectclass: hjgfhgfghfhg
street: shgdhgf kjsgdhgsjhg shdghsgjfhsfsf
jgsdhsh
company: xyz
user_modified.ldif(我的代码的输出)
我得到相同的输出,没有任何修改。我觉得这是因为我在做split("\n")
,但我不知道还能做什么。
期望的输出
dn: cnh
changetype: add
objectclass: inetOrgPerson
objectclass: cdsUser
objectclass: organizationalPerson
objectclass: Person
objectclass: n
objectclass: Top
objectclass: cd
objectclass: D
objectclass: nshd shdghsf shgdhfjh jhghhghhghhjgfhgfghfhg
street: shgdhgf
dn: cnh
changetype: add
objectclass: inetOrgPerson
objectclass: hjgfhgfghfhg
street: shgdhgf kjsgdhgsjhg shdghsgjfhsfsfjgsdhsh
company: xyz
正如您在我的输出文件中看到的user_modified.ldif
,第一个条目中的对象类和第二个条目中的街道进入下一行。我怎样才能让它们在同一行,就像在所需的输出中一样。
提前致谢
解决方案
lines = open("use.ldif", "r").read().split("\n")
for i, line in enumerate(lines):
if len(line) > 0 and not (":" in line):
lines[i-1] = lines[i-1].strip() + line
lines.pop(i)
open("user_modified.ldif", "w").write("\n".join(lines)+"\n")
推荐阅读
- javascript - 在 ForEach 中更新 javascript 对象?
- javascript - 我的调查 (HTML/JS) 的第二部分工作不正常?
- authentication - Shadowsocks 代理错误:(7) 无法接收初始 SOCKS5 响应
- javascript - 充满对象的数组长度错误?
- java - JPA 注释在插入时替换字符
- git - 如何处理此消息“您已在当前存储库中添加了另一个 git 存储库。”
- python - 如何在 TK Inter 中使用图像和按钮?
- jlink - 可以使用 jlink 来打包不同的 JRE,而不是从中运行吗?
- mysql - 选择在 2 个日期之间,但也选择 NULL 值
- c - 在输入“a”之前忽略所有输入字符 - 在 C 中使用 scanf