有没有办法通过Pyperclip复制我的VS代码段字符串

时间:2019-09-23 20:09:59

标签: python python-3.x visual-studio-code clipboard pyperclip

我正在尝试获取一个Python脚本,该脚本将从剪贴板中获取代码并将其格式化为VS代码片段,最后将其放回剪贴板(通过Pyperclip)。

我想逃跑

  • 反斜杠(\)
  • 行情(“)

我要替换

  • 带有(\ t)的实际标签

输入:

import pyperclip
string = """def print_string():
    print("YOLO\n")
"""
x = string.replace("\\", "\\\\").replace("\"","\\\"").replace("\t","\\t")
pyperclip.copy(x)

实际输出: (从剪贴板粘贴)

def print_string():
    print(\"YOLO
\")

预期输出: (可以在VS Code代码段的主体中几乎立即使用该方法)

def print_string():
\tprint(\"YOLO\\n\")

如何以某种方式编码我所缺少的东西?

2 个答案:

答案 0 :(得分:0)

您只需要在字符串引号前加上字母r来代表原始字符串,并避免在字符串中使用反斜杠转义。像这样:

string = r"""def print_string():
    print("YOLO\n")
"""

有关更多说明,请参阅官方文档。 String and Bytes literals

答案 1 :(得分:0)

我已经开始使用它了,而不是使用布鲁斯的方法。...下面是我的代码:

`

import pyperclip
string = pyperclip.paste()
my_list = []
for x in string.split("\r\n"):
    my_string = x.replace("\\", "\\\\").replace("\"","\\\"").replace("\t","\\t").replace("    ", "\\t")
    my_list.append(f"\"{my_string}\",")
value = "\n".join(my_list)
pyperclip.copy(value)

`