这是我试图解析解析制表符分隔文件与丢失的字段
ENTRY map0010\tNAME Glycolysis\tDESCRIPTION Glycolysis is the process of converting glucose into pyruvate\tCLASS Metabolism\tDISEASE H00071 Hereditary fructose intolerance\tH00072 Pyruvate dehydrogenase complex deficiency\tDBLINKS GO: 0006096 0006094
ENTRY map00020\tNAME Citrate cycle (TCA cycle)\tCLASS Metabolism; Carbohydrate Metabolism\tDISEASE H00073 Pyruvate carboxylase deficiency\tDBLINKS GO: 0006099\tREL_PATHWAY map00010 Glycolysis/Gluconeogenesis\tmap00053 Ascorbate and aldarate metabolism
我试图获得仅含有一些领域,如输出的复杂制表符分隔的文件的一个例子:
ENTRY map0010\tNAME Glycolysis\tCLASS Metabolism\tDISEASE H00071 Hereditary fructose intolerance H00072 Pyruvate dehydrogenase complex deficiency\tDBLINKS GO: 0006096 0006094\tNA
ENTRY map00020\tNAME Citrate cycle (TCA cycle)\tCLASS Metabolism; Carbohydrate Metabolism\tDISEASE H00073 Pyruvate carboxylase deficiency\tDBLINKS GO: 0006099\tREL_PATHWAY map00010 Glycolysis/Gluconeogenesis\tmap00053 Ascorbate and aldarate metabolism
的主要问题是,并不是所有的行包含相同数量的字段,所以我需要删除,例如,包含字符串“描述”字段,并且在各行,其中添加一个空场“CLASS”字段不存在。
此外,对于某些领域的数据被分割成多个(f.i,第1行,疾病包含疾病数据!),我需要加入他们。
我已经试过:
input = open('file', 'r')
dict = ["ENTRY", "NAME", "CLASS", "DISEASE", "DBLINKS", "REL_PATHWAY"]
split_tab = []
output = []
for line in input:
split_tab.append(line.split('\t'))
for item in dict:
for element in split_tab:
if item in element:
output.append(element)
else:
output.append('\tNA\t')
但它使一切,不仅在字典中指定的元素。 你能帮我吗?
那么,什么是实际的格式/文法? –
@Stuart,这是一个制表符分隔的文件(也许我不明白你的问题)。 – Sonny
看起来,每行显式命名字段,用空格分隔,然后是由tab分隔的值: –