Ich finde Teilzeichenfolge in komprimierter Datei mit folgenden Python-Skript. Ich bekomme "TypeError: ein Byte-ähnliches Objekt wird benötigt, nicht 'str'". Bitte helfen Sie mir, dies zu beheben.ein Byte-ähnliches Objekt ist erforderlich, nicht 'str': typeerror in komprimierter Datei
from re import *
import re
import gzip
import sys
import io
import os
seq={}
with open(sys.argv[1],'r') as fh:
for line1 in fh:
a=line1.split("\t")
seq[a[0]]=a[1]
abcd="AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG"
print(a[0],"\t",seq[a[0]])
count={}
with gzip.open(sys.argv[2]) as gz_file:
with io.BufferedReader(gz_file) as f:
for line in f:
for b in seq:
if abcd in line:
count[b] +=1
for c in count:
print(c,"\t",count[c])
fh.close()
gz_file.close()
f.close()
und Eingabedateien sind
TruSeq2_SE AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG
die zweite Datei Textdatei komprimiert wird. Die Zeile "if abcd in line:" zeigt den Fehler an.
Codeformatierungstipp: Halten Sie eine einheitliche Identitätsgröße für Ihren Code ein. Obwohl verschiedene Identifizierungsgrößen unterschiedliche Syntax verwenden, ist es für den Compiler kein Syntaxfehler. Denken Sie auch daran, immer 4 Leerzeichen für den Einzug zu verwenden - es gibt einen klaren Überblick darüber, was wo ist, ohne zu viel Platz zu verbrauchen. – jsbueno
Auch die Angabe, in welcher Zeile der Fehler ausgelöst wird, sollte Ihnen helfen, Antworten zu erhalten. – jsbueno