我正在编写一个代码,一次取一个巨大的文本文件(几GB)N行,处理该批处理,并移动到下一行N行,直到我完成整个文件.(我不在乎最后一批是不是完美的尺寸).
我一直在阅读有关使用itertools islice进行此操作的信息.我想我在那里:
from itertools import islice
N = 16
infile = open("my_very_large_text_file", "r")
lines_gen = islice(infile, N)
for lines in lines_gen:
...process my lines...
Run Code Online (Sandbox Code Playgroud)
麻烦的是我想处理下一批16行,但我遗漏了一些东西
有没有更好的方法来创建一个空白的data.frame,它具有与现有data.frame相同的维度,列名和行名称?
BAM<-read.table(~/myfile) # 10 rows and 10 columns, full of data
print(BAM)
SNP AZ04 AZ05 AZ06 AZ07 AZ08 AZ09 AZ10 AZ11 AZ12
1 0512930_3028 1 15 3 3 2 0 2 9 4
2 0512933_33862 0 7 1 5 18 2 4 10 5
3 0512933_33866 0 7 1 5 18 2 4 10 5
4 0512933_49263 4 12 15 14 14 9 7 15 15
5 0512933_315059 2 3 6 6 18 3 11 3 14
6 0512933_319854 4 …Run Code Online (Sandbox Code Playgroud) 我正在编写一个读取行/字符串的python脚本,调用Unix,使用grep在查询文件中搜索包含该字符串的行,然后打印结果.
from subprocess import call
for line in infilelines:
output = call(["grep", line, "path/to/query/file"])
print output
print line`
Run Code Online (Sandbox Code Playgroud)
当我查看打印到屏幕上的结果时,我将从查询文件中获得匹配字符串的列表,但我也会得到"1"和"0"整数作为输出,并且line永远不会打印到屏幕上.我希望从查询文件中获取与我的字符串匹配的行,然后是我在搜索中使用的字符串.