我正在尝试使用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)
但是输出保持不变。我尝试过使用双反斜杠也不能解决问题。有人可以请教吗?
答案 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
并逐行读取。