2016-12-20 3 views
0

Ich habe eine CSV-Datei, die etwas wie BM13302, EM13203 usw. Ich muss dies aus einer Datei lesen, dann formatieren Sie es zu etwas wie "BM13302", "EM13203", etcPython Export in ein TXT formatiert oder in Zwischenablage

Worin ich Probleme habe, ist, wie ich exportieren (schreiben Sie es entweder die Zwischenablage oder eine Datei, ich kann ausschneiden und einfügen. Dies ist ein kleines Projekt für die Neuformatierung von etwas SQL-Code, der gegeben ist zu mir in einem unreinen Format, und ich muss es ein wenig ausgeben, das es formatierend ist. Ich möchte Python nur auf ein Verzeichnis und hinter die Liste in der Datei zeigen und alles so exportieren lassen, wie ich es brauche.

Ich habe die Fo llowing Code arbeiten

import os 
f = open(r"/User/person/Desktop/folder/file.csv") 
csv_f = csv.reader(f) 

for row in csv_f: 
    print(row) 

ich die erwarteten Ergebnisse

bekommen würde Ich mag herausfinden, wie die Liste nehmen (?) und formatieren Sie es wie diese 'BM1234', 'BM2351', '20394', .... etc und Kopie, die

ich in die Zwischenablage dachte so etwas wie

etwas zu tun
with open('/Users/person/Desktop/csv/export.txt') as f: 
    f.write("open=", + "', '") 
f.close() 

nichts gedruckt wird. Kann kein Beispiel dafür finden, was ich brauche. Kann mir jemand helfen?

Viel schätzen!

+0

in Datei schreiben müssen Sie Datei im "" Schreibmodus "' öffnen - dh. 'open (...," w ")' – furas

+0

Wenn Sie 'mit open()' verwenden, dann brauchen Sie 'close()' nicht. Es wird automatisch geschlossen. – furas

+0

Also alles, was Sie tun wollen, ist, setzen Sie einzelne Anführungszeichen um jedes Wort? – tdelaney

Antwort

1

Sie die csv-Modul Zitat Dinge für Sie haben kann. Soweit ich weiß, gibt es in den Python-Standard-Bibliotheken keine Zwischenablage, aber es gibt verschiedene Mechanismen. Hier verwende ich pyperclip, was für Text-Kopien sinnvoll ist.

import pyperclip 
import csv 
import io 

def clip_csv(filename): 
    outbuf = io.StringIO() 
    with open('file.csv', newline='') as infile: 
     incsv = csv.reader(infile, skipinitialspace=True) 
     outcsv = csv.writer(outbuf, quotechar="'", quoting=csv.QUOTE_ALL) 
     outcsv.writerows(incsv) 
    pyperclip.copy(outbuf.getvalue()) 

clip_csv('file.csv') 
# DEBUG: Verify by printing clipboard 
print(pyperclip.paste()) 
+0

Perfekt, ich wollte pyperclip benutzen, wusste aber nichts von io. Vielen Dank. Ich habe es etwas schlauer gemacht, aber indem ich eine Variable nehme und platziere, die die Eingabe eines Dateinamens enthält und normal läuft, ist es nicht immer dieselbe statische Datei. Sie Rock Tdelaney !! –

0

Ich bin mir nicht sicher, aber ich glaube, Sie versuchen ' in csv auf alle Daten Gänsefüsschen hinzufügen

import csv 

with open('export.csv', 'w') as f: 

    # use quote char `'` for all data 
    writer = csv.writer(f, quotechar="'", quoting=csv.QUOTE_ALL) 

    writer.writerow(["BM1234", "BM2351", "20394"])