2

我正在做一个小项目,但遇到了问题。

我正在读取类似这样的文件(注意,原始文件有大约 40k 行):

35   IMAGE:1679942   SAMD4   Sterile alpha motif domain   Hs.98259   ATI146610
36   IMAGE:1700154            AI049531
37   IMAGE:1865232            AI269361

如您所见,有些单元格包含信息,有些则不包含。所以我希望在没有存储任何信息的每个单元格中都有一个N/A。我怎样才能做到这一点?.split() 确实列出了没有这些单元格的列表。有没有解决方案,我怎样才能将所有这些水龙头保存在一个列表中,即line = ["36", "IMAGE:1700154", "", "", "", "AI049531", ...]

4

2 回答 2

2

您可以在选项卡处拆分(使用评论中的数据进行编辑):

data = """35\tIMAGE:1679942\tSAMD4\tSterile alpha motif domain\tHs.98259\tATI146610
36\tIMAGE:1700154\t\t\tAI049531"""

for line in data.split("\n"):
    print line.split("\t")

结果:

['35', 'IMAGE:1679942', 'SAMD4', 'Sterile alpha motif domain', 'Hs.98259', 'ATI146610']
['36', 'IMAGE:1700154', '', '', 'AI049531']
于 2012-08-09T09:43:40.060 回答
0

您必须先准备数据,然后才能将其导入 CSV,然后再导入所需的列表格式。

1)首先找到您将拥有的最大列数

2) 为每个行项找到一个模式。例如。A*、Sterite* 等。希望存在这种模式以区分不同的行项目。

3) 对于每一行,执行 row.split("\t")` 并将每个行项与模式匹配以在行中找到其正确索引。

4)newRow[correct_index] = oldrow[index] and "" for others

于 2012-08-09T09:50:31.970 回答