我将PDF文本(用pypdf提取)存储在CSV文件中。问题是很少的pdf文件是非常长的,文本传播到多行为那些长的pdf文件,而不是保持一个单一的行。如何让它们保持在一个单独的行?我的输出如下
column1 column2
long pdf hello my
name is jhone
short pdf hello my name is jhone. I haven't any problem for short pdf file
我的代码:
pdf_url ='https://www.snb.ch/en/mmr/speeches/id/ref_20230330_amrtmo/source/ref_20230330_amrtmo.en.pdf'
print("pdf_url: ",pdf_url)
# Download the PDF file from the URL
response = requests.get(pdf_url)
# Create an in-memory buffer from the PDF content
pdf_buffer = io.BytesIO(response.content)
# Read the PDF file from the in-memory buffer
pdf = PdfReader(pdf_buffer)
pdf_content = []
# Access the contents of the PDF file
for page_num in range(len(pdf.pages)):
page = pdf.pages[page_num]
page = str(page.extract_text())
pdf_content.append(page)
with open(filename, "a", newline="", encoding='utf8') as f:
writer = csv.writer(f)
writer.writerow([first_author, new_date_str, speech_title,pdf_url,pdf_content])
pdf_content.clear()
1条答案
按热度按时间tf7tbtn21#
看起来这可能是CSV阅读器的限制,而不是脚本中的问题:如果你使用的是MS Excel(就像我一样),你会发现它有一个最大的字符数,它可以存储每个单元格(见规格)
当我检查该行最后一个字符串的长度时,我发现它刚好在这个限制之下。为什么这会导致一个新的路线,但我不清楚。
变通
要绕过此限制(在Excel中),您可以使用“From CSV”选项来显式告诉Excel将数据导入为表。然后应该正确显示。