Python 导出到 TXT 格式或剪贴板

Posted

技术标签:

【中文标题】Python 导出到 TXT 格式或剪贴板【英文标题】:Python export to a TXT formatted or to Clipboard 【发布时间】:2016-12-20 02:17:17 【问题描述】:

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

没有打印任何内容。找不到我需要的示例。谁能帮帮我??

非常感谢!

【问题讨论】:

要写入文件,您必须在"write mode" 中打开文件 - 即。 open(..., "w") 如果你使用with open(),那么你就不需要close()。它会自动关闭。 所以你只想在每个单词两边加上单引号? 【参考方案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())

【讨论】:

完美,我打算使用 pyperclip 但不知道 io。非常感谢。我让它变得更聪明了一点,但是获取并放置一个变量来保存文件名的输入并正常运行,这样它并不总是同一个静态文件。你摇滚 tdelaney!【参考方案2】:

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

【讨论】:

以上是关于Python 导出到 TXT 格式或剪贴板的主要内容,如果未能解决你的问题,请参考以下文章

从 python 访问备用剪贴板格式

知网文献导出格式为综合性期刊文献怎么办

js复制内容到剪贴板格式化粘贴到excel中

如何通过python复制xlsx,rar等格式的文件到剪贴板中?

将查询结果导出到一组 INSERT 语句?

js 将内容复制到剪贴板