Python 从PDF转换的成对文本
我在解析从PDF文件转换过来的字符串时遇到了一些麻烦,这是由Python 从PDF转换的成对文本,python,string,parsing,pdf,text,Python,String,Parsing,Pdf,Text,我在解析从PDF文件转换过来的字符串时遇到了一些麻烦,这是由pdftotext.exe使用选项-table完成的。如下所示,转换后的文本包含一些空行,但可以轻松地进行修剪。然而,有时,它会将一条线分成多个部分。例如,“苯磺酸单-C10-16-烷基衍生物,钠盐”被处理三行。有没有办法解决或克服这个问题,比如按列扫描文本文件?提前谢谢 伪码 转换文本文件的示例 可能不是以一种通用的方式,一种可以在其他用例中轻松使用的方式。在没有看到更多转换后的pdf的情况下,我建议作为第一次尝试,按制表符拆分(如果
pdftotext.exe
使用选项-table
完成的。如下所示,转换后的文本包含一些空行,但可以轻松地进行修剪。然而,有时,它会将一条线分成多个部分。例如,“苯磺酸单-C10-16-烷基衍生物,钠盐”被处理三行。有没有办法解决或克服这个问题,比如按列扫描文本文件?提前谢谢
伪码
转换文本文件的示例
可能不是以一种通用的方式,一种可以在其他用例中轻松使用的方式。在没有看到更多转换后的pdf的情况下,我建议作为第一次尝试,按制表符拆分(如果有用于分隔列的制表符)或按每列的宽度拆分,然后检查“同义词”或“商业机密”是否为空。如果是,请将该行的第一个字段附加到上一行的第一个字段。@OliverW.-谢谢您的建议。此时,我正在使用您的方法,并按固定宽度解析这些字符串。等着看有没有其他想法。
with open(fname) as f:
content = f.readlines()
#remove empty lines
Chemicals_new=[line for line in content if line.strip()]
Chemicals_new[0].split(" ") ###need some help here...
Chemical Name Synonyms Trade Secret CAS-No Weight %
Sodium carbonate - No 497-19-8 25 - 30
Silicic acid, aluminum sodium salt - No 1344-00-9 15 - 20
Benzenesulfonic acid, - No 68081-81-2 10 - 15
mono-C10-16-alkyl derivs., sodium
salts