2016-06-27 11 views
1

Es gibt ein Textdokument mit dem Namen: file.txt mit bereits vorhandenem Text.Anhängen von Daten beim Schreiben vom Excel-Blatt in das TXT-Dokument

Wenn ich durch das Excel-Blatt gehe und in die Textdatei schreibe, löscht es den ursprünglichen Text darauf.

Wie füge ich nur die Informationen aus dem Excel-Blatt an, während die Originaltextinformationen beibehalten werden?

CODE

import xlwt 
import xlrd 
import csv 

workbook = xlrd.open_workbook('input.xls') 
sheet = workbook.sheet_by_index(2) 

data = [] 
data.append([sheet.cell_value(row, 0).strip() for row in range(sheet.nrows)]) 
data.append([sheet.cell_value(row, 1).strip() for row in range(sheet.nrows)]) 

workbook = xlwt.Workbook() 
sheet = workbook.add_sheet('test') 

for colidx, col in enumerate(data): 
    for rowidx, row in enumerate(col): 
     sheet.write(rowidx, colidx, row)  

transposed = zip(*data) 
with open('file.txt','wb') as fou: 
    writer = csv.writer(fou) 
    for row in transposed: 
     writer.writerow(row) 

Antwort

1

Wenn ich das richtig verstanden, Sie ab als Flag zu open() übergeben möchten:

transposed = zip(*data) 
#      v 
with open('file.txt','ab') as fou: 
    writer = csv.writer(fou) 
    for row in transposed: 
     writer.writerow(row) 
+0

Danke, das funktioniert. –

+0

Prost, Kumpel. Happy Coding für Sie. – bernie

+0

Wie entferne ich alle Leerzeichen aus dieser Datei.txt und speichern sie als die gleiche Datei. Zum Beispiel, wenn Sie folgendes ausführen: input = open ('file.txt', 'rb') Ausgabe = Öffnen ('files.txt', 'wb') writer = csv.writer (Ausgabe) für Zeile in csv .reader (Eingabe): falls vorhanden (field.strip() für Feld in Zeile): writer.wrwerow (Zeile) input.close() output.close() muss als anderes Dokument gespeichert werden –