开头使用open()或.write()?



是否有一种方法可以预先诅咒python中的写入函数(我正在使用fasta文件,但任何与文本文件一起工作的写入函数都应该工作)?我能想到的唯一方法是将整个文件作为数组读入,并计算我想要开始的行数,然后根据该值将该数组重新写入文本文件。

我只是在想可能会有一个写选项或其他地方

我想添加一些代码,但我现在正在写,这里的每个人似乎都很精通,可能知道我在说什么。我是CS领域的EE,只是呼吁StackOverflow社区给我一些启发。

根据我的理解,你想从头截断文件-即删除前n行。

那么不——你不可能不读行而忽略行——这就是我要做的:

import shutil
remove_to = 5 # Remove lines 0 to 5
try:
with open('precurse_me.txt') as inp, open('temp.txt') as out:
for index, line in enumerate(inp):
if index <= remove_to:
continue
out.write(line)
# If you don't want to replace the original file - delete this
shutil.move('temp.txt', 'precurse_me.txt') 
except Exception as e:
raise e

这里我打开一个输出文件,然后在处理(for循环)完成后使用shutil.move()来替换输入文件。这样做是为了在处理失败的情况下不会破坏'precurse_me.txt'文件。我把整个东西包装在try/except中,这样如果有任何失败,它就不会意外地尝试移动文件。

关键是for循环——逐行读取输入文件;使用enumerate()函数对进入的行进行计数。忽略这些行(通过使用continue),直到索引指示不忽略该行—之后只需将每一行写入输出文件。

相关内容

最新更新