小编Des*_*ino的帖子

使用Python heapq.merge对大文件进行排序

我想完成这样的工作,但遇到了困难:

我有一大堆文本.每一行的格式"AGTCCCGGAT filename"都是第一部分是DNA的东西.

教授建议我们将这个巨大的文件分成许多临时文件并用heapq.merge()它们进行排序.目标是在末尾有一个文件,其中包含原始文件的每一行并进行排序.

我的第一次尝试是将每一行分成一个单独的临时文件.问题是heapq.merge()报告有太多文件要排序.

我的第二次尝试是将它分成50000行的临时文件.问题是它似乎不是按行排序,而是按文件排序.例如,我们有类似的东西:

ACGTACGT filename
CGTACGTA filename
ACGTCCGT filename
CGTAAAAA filename
Run Code Online (Sandbox Code Playgroud)

前两行来自一个临时文件,后两行来自第二个文件.

我对它们进行排序的代码如下:

for line in heapq.merge(*[open('/var/tmp/L._Ipsum-strain01.fa_dir/'+str(f),'r') for f in os.listdir('/var/tmp/L._Ipsum-strain01.fa_dir')]):
     result.write(line)
result.close()
Run Code Online (Sandbox Code Playgroud)

python sorting

4
推荐指数
1
解决办法
2429
查看次数

Python - os.system - 如何删除临时文件?

我正在尝试使用 Python 删除临时文件。我的操作系统是 Windows。

现在,我注意到使用os.system("del xxx")删除该文件对我来说是有意义的,但是有没有办法使它通用?例如,让它也能在 Mac 或 Linux 上运行?我知道这些系统使用“rm”而不是“del”。

谢谢!

python system

2
推荐指数
1
解决办法
2315
查看次数

标签 统计

python ×2

sorting ×1

system ×1