私は入力のような大きなファイルを持っていて、各行は@で始まる行と同じIDに対応しています。 2行目(@の後)は一連の文字であり、IDの中にはこの行がありません。この場合、私はすべての4行を削除したいと思います同じIDに属しています。
私はPythonで以下のコードを試してエラーを出しました。テキストファイル編集時のエラー
入力:
@M00872:361:000000000-D2GK2:1:1101:16003:1351 1:N:0:1
ATCCGGCTCGGAGGA
+
1AA?ADDDADDAGGG
@M00872:361:000000000-D2GK2:1:1101:15326:1352 1:N:0:1
GCGCAGCGGAAGCGTGCTGGG
+
CCCCBCDCCCCCGGEGGGGGG
@M00872:361:000000000-D2GK2:1:1101:16217:1352 1:N:0:1
+
出力:
@M00872:361:000000000-D2GK2:1:1101:16003:1351 1:N:0:1
ATCCGGCTCGGAGGA
+
1AA?ADDDADDAGGG
@M00872:361:000000000-D2GK2:1:1101:15326:1352 1:N:0:1
GCGCAGCGGAAGCGTGCTGGG
+
CCCCBCDCCCCCGGEGGGGGG
import fileinput
with fileinput.input(files="4415_pool.fastq", inplace=True, backup="file.bak") as f:
for l in f:
if l.strip().startswith("@"):
c = 2
next_line = f.readline().strip()
if not next_line:
while c:
c -= 1
try:
next(f)
except StopIteration:
break
else:
print(l.strip())
print(next_line.strip())
while c:
c -= 1
try:
print(next(f).strip())
except StopIteration:
break
が、仕事と、このエラーを与えませんでした:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: FileInput instance has no attribute '__exit__'
あなたがこの問題を解決する方法を知っていますか?
どのpythonバージョンを使用していますか?私はそれがとfileinputをサポートしていない古いバージョンだと思う。 'f = fileinput.input(files =" 4415_pool_TCP_Ctrl.fastq "、inplace = True、backup =" file.bak ")' –
のpythonのバージョンは2.7です。 – ARM