0

我有一个类似于 BM13302、EM13203 等的 csv 文件,我必须从文件中读取它,然后将其重新格式化为“BM13302”、“EM13203”等

我遇到的问题是如何导出(将其写入剪贴板或文件,我可以从中剪切和粘贴。这是一个很小的项目,用于重新格式化一些 SQL 代码的一部分,这些代码是在一个不干净的格式,我不得不花一点时间格式化它。我只想将 python 指向一个目录并通过文件中的列表,让它以我需要的方式导出所有内容。

我有以下代码工作

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()

什么都没有打印。找不到我需要的示例。谁能帮帮我??

非常感谢!

4

2 回答 2

1

您可以让 csv 模块为您报价。据我所知,python 标准库中没有剪贴板,但有各种机制。在这里,我使用pyperclipwhich 对于纯文本副本是合理的。

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())
于 2016-12-20T03:18:04.087 回答
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"])
于 2016-12-20T02:46:15.483 回答