我对python非常陌生,所以我可能没有正确的术语
我使用pdfplumber从pdf中提取了文本。已保存为对象。我使用的代码是:
with pdfplumber.open('Bell_2014.pdf') as pdf:
page = pdf.pages[0]
bell = page.extract_text()
print(bell)
所以“bell”是导入的PDF第一页的所有文本。 what bell looks like我需要将所有文本作为字符串写入csv。我尝试使用:
with open('Bell_2014_ex.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(bell)
及
bell_ex = 'bell_2014_ex.csv'
with open(bell_ex, 'w', newline='') as csvfile:
file_writer = csv.writer(csvfile,delimiter=',')
file_writer.writerow(bell)
当我搜索时,我一直在寻找的是如何创建一个带有特定字符或数字的csv,而不是从已经执行的代码的输出中。例如,我可以得到上面的代码:
bell_ex = 'bell_2014_ex.csv'
with open(bell_ex, 'w', newline='') as csvfile:
file_writer = csv.writer(csvfile,delimiter=',')
file_writer.writerow(['bell'])
创建一个在csv的一个单元格中有“bell”的csv,但这是我能得到的最接近的结果。 我觉得这应该非常简单,但我似乎无法让它发挥作用。 有什么想法吗? 谢谢你帮助我这个没有经验的人
所以我的问题是,我缺少特殊字符的“encoding='utf-8'”,我的分隔符需要是空格而不是逗号。最终起作用的是:
然而,由于我的很多PDF不是真正的PDF而是扫描,csv最终有很多奇怪的符号。这在我拥有的PDF中大约有一半是有效的。如果你有真正的PDF,这将是伟大的。如果没有,我目前正试图找出如何将所有文本提取到由PDF中的标题分隔的pandas数据帧中,因为pdfminer完美地提取了所有文本。 谢谢大家的帮助
page.extract_text()
定义为:“将页面的所有字符对象整理成一个字符串。”这将使bell
成为一个非常长的字符串CSV
writerow()
默认情况下需要一个字符串列表,列表中的每一项对应一列您的主要问题是类型不匹配,您试图在需要字符串列表的地方编写单个字符串。您需要进一步操作
bell
对象,将其转换为可接受的格式,以便写入CSV我不知道
bell
包含什么或您打算写什么,我无法得到任何更具体的信息,但是关于Python的CSV模块的文档在设置分隔符、方言、列定义等方面非常全面。一旦您将bell
转换成适当的字符串列表,然后可以将其写入CSV我最近编写的一些类似代码将选项卡分隔的文件转换为csv,以便插入sqlite3数据库:
也许这有帮助:
。。。就这样,不太难
相关问题 更多 >
编程相关推荐