假设我有一个类似这样的文本文件:
Områder dorsalt i overgangssonen, midtre tredjedel med blodpunkter.R: Malignitet ikke påvist
如何在文本中的每个\n
之前为多个文档添加R:
?
这是我到目前为止的代码:
import os
for root, dirs, files in os.walk(".", topdown=True):
for name in files:
if name != "merge_reports_into_metadata_csv.py" or name != "BakgrunnsData_v2.csv" or name != "remove_text_windows.py":
slash = "\\"
if root == ".":
slash = ""
f = open(root.strip(".").strip("\\") + slash + name, "r")
lines = f.readlines()
f.close()
f = open(root.strip(".").strip("\\") + slash + name, "w")
for line in lines:
if line != "R:" + "\n":
f.write(line)
else:
print("adding line space the word 'R:' from " + name)
f.close()
print("all 'R:'s are moved one line down")
答案 0 :(得分:3)
您可以使用re
模块进行正则表达式替换:
In [1768]: text = u'Områder dorsalt i overgangssonen, midtre tredjedel med blodpunkter.R: Malignitet ikke påvist'
In [1771]: new_text = re.sub(r'(R:)', r'\n\1', text, flags=re.M)
In [1773]: print(new_text)
Områder dorsalt i overgangssonen, midtre tredjedel med blodpunkter.
R: Malignitet ikke påvist
您可以使用f.read()
一次性阅读文件,并将文字传递给re.sub
。
如果您的文件相当大,我建议您逐行阅读,并在更换为新文件时写下每一行。
答案 1 :(得分:1)
在我看来,你可以通过一个简单的文本替换来实现这一点:
[
{
"India":{
"Arm Export": 30,
"Food Export": 50
}
},
{
"USA":{
"Arm Export": 90,
"Food Export": 5
}
},
{
"Russia":{
"Arm Export": 90,
"Food Export": 5
}
}
]
如果你的模式更复杂,或者有时它周围有空格,那么提到正则表达式的其他答案是一个很好的方法。
答案 2 :(得分:0)
您可以替换所有" R:"在文字和
text.replace('R:','\nR:')