Python 拆分以缩进开头的段落

Python 拆分以缩进开头的段落,python,csv,split,Python,Csv,Split,我有一个很长的文本,我需要将其拆分为段落,然后创建一个.csv,在每个单元格中为我提供一个新段落。以下是我尝试过的: paragraphs = str(chunks) print (paragraphs) Paragraphs1 = paragraphs.split("^\n\n") data1 = zip(Paragraphs1) with open('Paragraphs1.csv','wb') as f: w=csv.writer(f) w.writerow(['Pa

我有一个很长的文本,我需要将其拆分为段落,然后创建一个.csv,在每个单元格中为我提供一个新段落。以下是我尝试过的:

paragraphs = str(chunks)
print (paragraphs)

Paragraphs1 = paragraphs.split("^\n\n")

data1 = zip(Paragraphs1)

with open('Paragraphs1.csv','wb') as f:
    w=csv.writer(f)
    w.writerow(['Paragraphs'])
    for row in data1:
        w.writerow(row)
这将生成一个.csv文件,其中包含两行长的未分析段落。我还尝试使用“\n”-它会在.csv中的每个单元格中生成一个新句子,但.csv保留了段落结构。有人有更好的方法吗

str.split()
不接受正则表达式。您正试图拆分文本中的文字
“^\n\n”
字符:

>>> 'Text with newlines\n\nand a caret at the end^\n\nwhich will be split'.split('^\n\n')
['Text with newlines\n\nand a caret at the end', 'which will be split']
如果要使用正则表达式进行拆分,请使用
re
模块:

import re

re.split(r'^\n\n', paragraphs, flags=re.MULTILINE)
re.MULTILINE
标志确保
^
在每个换行后匹配,而不仅仅是在字符串的开头

请注意,这假设您希望在有三个连续换行符的位置拆分。演示:

>>> import re
>>> re.split(r'^\n\n', 'Cool\n\n\nNew paragraph\nruns here\n\n\nAnother paragraph?', flags=re.MULTILINE)
['Cool\n', 'New paragraph\nruns here\n', 'Another paragraph?']
如果两个换行符足够,请使用
$\n\n

>>> re.split(r'$\n\n', 'Cool\n\nNew paragraph\nruns here\n\nAnother paragraph?', flags=re.MULTILINE)
['Cool', 'New paragraph\nruns here', 'Another paragraph?']

你能给我们看一些打印语句的输出,或者一些理想的I/O吗?典型的新手错误-谢谢。如何将其更改为在考虑\n之后使用空格?示例:
“谢谢主席先生。我很感激这个机会。\n格林斯潘主席,很高兴欢迎您今天上午来到这里。
在这里,在“机会之后”和“主席之前”有一个选项卡空间。如果我没记错的话,它是\s或类似的东西?
\s
都是空白<代码>\t是制表符<代码>[\t]将是选项卡或空格
\s
也会匹配换行符,所以这可能不是您想要的。所以
段落1=re.split(r'^\n\n\t',段落,标志=re.MULTILINE)
或者\t、\s或[\t]的任何排列都会是结构?我显然是个初学者,只是想确定一下。是的,但是请注意,
^
本身要么在字符串的开头,要么就在换行符之后;这意味着
^\n\n\t
仅在
'行尾匹配。\n\n\n\t在开始处有制表符的新行'