我有一个文本文件(a.txt)。这是其中的一小部分:
ENSG00000060642.6 0,023999998 0,015999999 0,666666667 0,006410256 0,006410256 1,000000073 0,016393442 0,016393442 1 0,020202022 0,030303031 1,499999908
ENSG00000149136.3 0,03508772 0,01754386 0,5 0,068627447 0,029411765 0,428571456 0,078947365 0,065789476 0,833333396 0,066666663 0,066666663 1
ENSG00000104889.4 0 0 #DIV/0! 0 0 #DIV/0! 0 0 #DIV/0! 0 0 #DIV/0!
ENSG00000157827.15 0,055555556 0,037037037 0,666666667 0,032258064 0,048387095 1,5 0,150000006 0,024999999 0,16666665 0,222222224 0,037037037 0,166666667
ENSG00000146067.11 0 0 #DIV/0! 0 0 #DIV/0! 0 0 #DIV/0! 0 0 #DIV/0!
ENSG00000167700.4 0,299999982 0 0 0,071428567 0,071428567 1 0 0 #DIV/0! 0 0 #DIV/0!
ENSG00000172137.14 0 0 #DIV/0! 0 0 #DIV/0! 0 0 #DIV/0! 1 0 0
ENSG00000178776.4 0 0 #DIV/0! 0 0 #DIV/0! 0 0 #DIV/0! 0 0 #DIV/0!
我要过滤掉所有行,包括“#DIV/0!”,即使只有一个“#DIV/0!”,并生成新的文本文件。你知道吗
编辑:
这种方法可能是最快的。但正如前面与@martineau讨论过的,根据文件的大小,这并不是最好的答案。你知道吗
^{}
[line for line in f if '#DIV/0!' not in
在python中非常常见,它取代了一段代码:line]
但它更加优化(请参见此处的解释:Efficiency of list comprehensions)
^{} 加载内存中的所有内容,这样就可以
在数据量巨大的情况下会导致缓冲区溢出。你知道吗
这就是为什么在这里,当您不确定要处理多少数据时,使用增量方法(@martineau's one)更安全!你知道吗
您可以这样做,这是增量的(因此它不会一次将整个文件读入内存):
相关问题 更多 >
编程相关推荐