使用python替换所有换行符

时间:2019-02-19 07:30:55

标签: python python-3.x

我正在尝试使用python阅读pdf,并且内容中包含许多换行符(crlf)。我尝试使用以下代码删除它们:

from tika import parser

filename = 'myfile.pdf'
raw = parser.from_file(filename)
content = raw['content']
content = content.replace("\r\n", "")
print(content)

但是输出保持不变。我尝试过使用双反斜杠也不能解决问题。有人可以请教吗?

4 个答案:

答案 0 :(得分:1)

我无权访问您的pdf文件,因此我在系统上处理了一个。我也不知道您是否需要删除所有新行或仅将新行加倍。下面的代码删除了双换行,这使输出更具可读性。

请告诉我这是否适合您当前的需求。

from tika import parser

filename = 'myfile.pdf'

# Parse the PDF
parsedPDF = parser.from_file(filename)

# Extract the text content from the parsed PDF
pdf = parsedPDF["content"]

# Convert double newlines into single newlines
pdf = pdf.replace('\n\n', '\n')

#####################################
# Do something with the PDF
#####################################
print (pdf)

答案 1 :(得分:0)

content = content.replace("\\r\\n", "")

您需要对它们进行两次转义。

答案 2 :(得分:0)

print(open('myfile.txt').read().replace('\n', ''))

答案 3 :(得分:0)

如果您遇到不同形式的换行符问题,请尝试使用 str.splitlines() 函数,然后使用您想要的字符串重新连接结果。像这样:

content = "".join(l for l in content.splitlines() if l)

然后,您只需将引号内的值更改为您需要加入的值。 这将允许您检测找到的所有行边界 here。 请注意,str.splitlines() 返回的是列表而不是迭代器。因此,对于大字符串,这会耗尽您的内存使用量。 在这些情况下,最好使用文件流或 io.StringIO 并逐行读取。