Python 加上「\";到文本中的特定行
假设我有一个类似这样的文本文件:Python 加上「\";到文本中的特定行,python,python-3.x,Python,Python 3.x,假设我有一个类似这样的文本文件: Områder dorsalt i overgangson,midtre tredjedel med blodpunkter.R:Malignitet ikke påvist 如何在多个文档的文本中的每个R:之前添加\n? 这是我目前掌握的代码: import os for root, dirs, files in os.walk(".", topdown=True): for name in files: if name != "mer
Områder dorsalt i overgangson,midtre tredjedel med blodpunkter.R:Malignitet ikke påvist
如何在多个文档的文本中的每个R:
之前添加\n
?
这是我目前掌握的代码:
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")
您可以将正则表达式替换用于
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
如果您的文件相当大,我建议逐行读取并在替换为新文件时写入每一行。您可以在
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
如果您的文件很大,我建议您逐行阅读,并在替换为新文件时写入每一行。在我看来,您可以通过简单的文本替换来完成此操作:
# -*- coding: utf-8 -*-
text = "Områder dorsalt i overgangssonen, midtre tredjedel " \
"med blodpunkter.R: Malignitet ikke påvist\n"
print text.replace("R:", "\nR:")
如果您的模式更复杂,或者有时有空格,那么其他提到正则表达式的答案是一个不错的选择。在我看来,您可以通过简单的文本替换来实现这一点:
# -*- coding: utf-8 -*-
text = "Områder dorsalt i overgangssonen, midtre tredjedel " \
"med blodpunkter.R: Malignitet ikke påvist\n"
print text.replace("R:", "\nR:")
如果您的模式更复杂,或者有时它周围有空格,那么其他提到正则表达式的答案是一个不错的选择。您可以替换文本和
text.replace('R:','\nR:')
您可以替换文本和中的所有“R:”
text.replace('R:','\nR:')