ich eine Datei wich muss hinzufügen, etwa 12 millon Linien hat, sieht jede Zeile wie folgt aus:Schnelle Weg Linie/Zeilennummer Textdatei
0701648016480002020000002030300000200907242058CRLF
Was ich versuche zu bewerkstelligen ist das Hinzufügen einer Reihe Zahlen vor den Daten, die Zahlen sollten eine feste Länge haben.
Die Idee hinter dieser ist in der Lage, eine Masseneinfügung dieser Datei in eine SQLServer-Tabelle, und führen Sie dann bestimmte Operationen mit ihm, die jede Zeile mit einer eindeutigen Kennung erfordern. Ich habe versucht, dies auf der Datenbank Seite zu tun, aber ich war nicht in der Lage, eine gute Leistung zu erreichen (unter 4 'mindestens, und unter 1' wäre ideal).
Im Moment versuche ich eine Lösung in Python, die in etwa so aussieht.
file=open('file.cas', 'r')
lines=file.readlines()
file.close()
text = ['%d %s' % (i, line) for i, line in enumerate(lines)]
output = open("output.cas","w")
output.writelines(str("".join(text)))
output.close()
Ich weiß nicht, ob dies funktionieren wird, aber es wird mir helfen, eine Idee, wie wird sie durchführen und Nebenwirkungen, bevor ich versuchen, neue Dinge zu halten, auch dachte, dass ich es in C tun so Ich habe eine bessere Speicherkontrolle.
Wird es helfen, es in einer niedrigen Sprache zu tun? Kennt jemand einen besseren Weg dies zu tun, bin ich mir ziemlich sicher, dass es getan wurde, aber ich habe nichts gefunden.
dank
haben Sie versucht, einen kleinen Teil der Daten (vielleicht 100 Zeilen) zu nehmen und es in eine temporäre Datei zu kopieren und Ihre Lösung darauf zu testen? – Jason
Probieren Sie es zuerst auf einer kleineren Probe .cas-Datei aus. Verschwenden Sie keine Zeit damit, 12 Millionen Zeilen wieder und wieder zu kopieren. – mcandre
Hat jede Zeile eine feste Größe? Wenn ja, mappen Sie einfach die Datei und setzen Sie Ihre Position auf einen berechneten Offset – hova