Python 导出为 TXT 格式或剪贴板

Python export to a TXT formatted or to Clipboard

我有一个类似于 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()

未打印任何内容。找不到我需要的例子。任何人都可以帮助我吗??

非常感谢!

我不确定,但我认为您尝试将引号字符 ' 添加到 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"])

您可以让 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())