2016-12-20 6 views
0

У меня есть файл csv, который является чем-то вроде BM13302, EM13203 и т. Д. Я должен прочитать это из файла, а затем переформатировать его на что-то вроде «BM13302», «EM13203» и т. Д.Экспорт Python в форматированный или в буфер обмена TXT

У меня возникли проблемы с тем, как я могу экспортировать (пишу это либо в буфер обмена, либо в файл, я могу вырезать и вставить его. Это небольшой проект для переформатирования некоторых для части кода SQL, который указан для меня в нечистом формате, и я должен потратить немного времени на его форматирование. Я хотел бы просто указать python в каталог и пропустить список в файле и экспортировать все, что мне нужно.

У меня есть fo llowing код работает

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

for row in csv_f: 
    print(row) 

Я получаю ожидаемые результаты

Я хотел бы узнать, как взять список (?) и отформатировать его как этот «BM1234», «BM2351», «20394», .... и т.д. и скопируйте в буфер обмена

Я думал, что что-то делает что-то вроде

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

ничего не печатается. Не могу найти пример того, что мне нужно. Любой, кто может мне помочь?

Очень ценно!

+0

Чтобы записать файл, вам необходимо открыть файл в '' режиме записи '' - т.е. 'open (...," w ")' – furas

+0

, если вы используете 'with open()', тогда вам не нужно 'close()'. Он автоматически закрывается. – furas

+0

Итак, все, что вы хотите сделать, это одинарные кавычки вокруг каждого слова? – tdelaney

ответ

1

Вы можете иметь модуль CSV цитаты вещи для вас. Насколько я знаю, в стандартных библиотеках python нет буфера обмена, но есть различные механизмы. Здесь я использую pyperclip, который является разумным для текстовых копий.

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

Отлично, я собирался использовать pyperclip, но не знал об iio. Спасибо много. Я сделал это немного умнее, но принимая и помещая переменную для хранения ввода имени файла и запуская как обычно, таким образом, это не всегда один и тот же статический файл. You Rock tdelaney !! –

0

Я не уверен, но я думаю, что вы пытаетесь добавить кавычки символ ' ко всем данным в csv

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"]) 

 Смежные вопросы

  • Нет связанных вопросов^_^