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:')