In meinem .dat file sind ein paar Daten in Kolonen gespeichert.
Sieht etwa so aus:
- #1gym 0 0
HIS 32 A 8.11 1.61 7.6 1.1 6.5
HIS 61 A 4.99 -1.51 3 -3.5 6.5
HIS 81 A 4 -2.5 3 -3.5 6.5
HIS 82 A 6.55 0.05 6.9 0.4 6.5
HIS 92 A 6.43 -0.07 5.4 -1.1 6.5
HIS 227 A 4.05 -2.45 6.9 0.4 6.5
Ich brauch aber die 4. und 5. Kolonne nicht, die Nullen in der ersten Zeile spielen keine Rolle, das ganze wird mit GNUPlot geplottet und dort ist hinter '#' ein Kommentar.
Ich möchte nun das ganze .dat-File (bzw. alle im Verzeichnis) einlesen und alles ausser den beiden genannten Kolonnen wieder zurückschreiben.
Hier mein Ansatz:
Code: Alles auswählen
class rewriter():
def __init__(self):
self.pattern = r'^\d\w{3}$'
self.dir = sys.argv[1]
self.filelist = []
self.filevalue = ''
def rewriteDats(self):
#List all elements in the directory.
for dat in listdir(self.dir):
#The-name-of-the-files-collecto.
#Make sure only the protein files are being provided.
name = dat
if re.search(self.pattern, splitext(name)[0]) and splitext(name)[1][1:] == 'dat':
self.filelist.append(name)
print(name)
datfile = open(join(self.dir, name), 'w')
datvalue = datfile.readlines()
for line in datvalue:
if line[0]!= '#':
linelist = line.split()
lineString = " ".join([linelist[0], linelist[1], linelist[2], linelist[5], linelist[6]]) + "\n"
datfile.write(lineString)
datfile.close()
- AttributeError: 'BufferedWriter' object has no attribute 'read1'