Есть ли способ скопировать мою строку кода VS кода через Pyperclip - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь получить скрипт Python, который возьмет код из моего буфера обмена и отформатирует его как фрагмент кода VS, наконец поместив его обратно в буфер обмена (через Pyperclip).

Я хочуescape

  • Обратная косая черта (\)
  • Кавычки (")

Я хочу заменить

  • Фактические вкладки на (\ 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)

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

Как получить то, что мне не хватает, кодируя это определенным образом?

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Я получил это работает, не используя метод Брюса .... ниже мой код:

`

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)

`

0 голосов
/ 24 сентября 2019

Вам просто нужно поставить кавычки в строке перед буквой r, чтобы представить исходную строку и избежать обратной косой черты в строке.Например:

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

Для получения более подробной информации, пожалуйста, обратитесь к официальной документации. Строковые и байтовые литералы

...