我有一个输入文本文件,其中包含从 PDF 中逐页提取的数据。 此输入文本文件不包含列和行格式的所有数据。 我如何将其转换为 csv 或 excel 文件,其中数据按列和行排列,如图所示。 我已附上示例输入文件以及所需的示例输出文件。 有免费软件或 Java/Python 吗?我应该如何开始?高度赞赏此过程的任何线索。
输入文件 https://drive.google.com/file/d/1Ak0pqpJApp0KlIDxub3txbacTQf_OJOK/view?usp=sharing
输出文件 https://drive.google.com/file/d/1AiUsyE5lddtfw16OcoU8WNIzFS8yjKOd/view?usp=sharing
最佳答案
你基本上必须编写一个解析器。解析可以通过基本的字符串操作来完成。然后可以通过像 pandas to excel 这样的库来完成对 Excel 文件的写入。 .
解析:
以下是一些希望对解析有用的提示:
string.split() :
这将允许您在每个空格处分割文本。例如
>>> "Hello World".split()
['Hello', 'World']
现在,当部件始终处于相同位置时,您可以通过索引来获取它们。 要将每一行放在单独的列表中,您可以执行以下操作:
text = "Your text you read from the file. \n with some \n newlines \n"
lines = text.split("\n")
假设您现在需要第 3 行的一些内容:
line3 = lines[3]
有了这个,您现在可以计算行和空格的索引,并可以创建规则来确定如何获取信息。
正则表达式re :
如果您有可以用正则表达式表达的模式,则可以使用此模块。
例如,您希望所有日期的格式为(dd/mm/yy):
>>> import re
>>> text = "19/02/99 or another date 26/12/12 non valid date 12/12/1999"
>>> re.findall(r"[0-9]{2}\/[0-9]{2}\/[0-9]{2}", text)
['19/02/99', '26/12/12', '12/12/19']
评估和测试正则表达式的一个非常有用的工具是:regex101
如果您还有其他问题或想了解某个主题的更多详细信息,欢迎在评论中提问。
关于java - 将非柱状文本文件转换为柱状 CSV/Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58832303/