我有复杂的,可变的文本文件,我想读入Python,但我不确定最佳策略是什么。我不是在找你为我编码任何东西,只是关于哪些模块最适合我的需求/提示等的一些提示。
文件类似于:
Program
Username: X Laser: X Em: X
exp 1
sample 1
Time: X Notes: X
Read 1 X data
Read 2 X data
# unknown number of reads
sample 2
Time: X Notes: X
Read 1 X data
...
# Unknown number of samples
exp 2
sample 1
...
# Unknown number of experiments, samples and reads
# The 4 spaces between certain words represent tabs
为了分析这些数据,我需要获取每次读数的数据,并知道它来自哪个样本和实验。另外,我可以更改输出文件格式,但我认为我在这里编写的方式最容易阅读。
要将此文件读入Python,我能想到的最佳方法是逐行读取它并使用正则表达式搜索关键字。例如,在行中搜索“exp”关键字,然后在其后面记录数字,然后在下一行中搜索样本,依此类推。但是,如果在“注释”部分中使用关键字,这当然不起作用。
所以,我有点难以满足我的需求(如果你不知道它存在的话就很难用东西!)
感谢您的时间。
答案 0 :(得分:1)
这是syntactic analyzer的典型任务。在这种情况下,因为
(相对)简单的scannlerless parser基于行DFA和前面提到的一组正则表达式可以应用:
有关示例,请参阅get the path in a file inside {} by python。在那里,我不构造一个解析树(不需要),但只跟踪当前状态。